`
firelife
  • 浏览: 31376 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

informix大表分片[收]

阅读更多
    informix一个页面最多可以存放255条记录,每个页面的系统overhead是28个字节,每条记录在这个页面的slot table表中占用4个字节,slot table记录了每条记录在这个页面上的偏移量和大小;因此每张表在一个页面上的最大记录数是(pagesize - 28) /( rowsize + 4);当有些表的rowrize比较大,数据量增长
又比较快的时候,使用缺省的页面大小(2k或4k)是不合适的,需要使用更大的pagesize,在linux/hp/sun上最大的pagesize 是16k,在aix上最大的pagesize是32k;informix一张表在2k页面大小的dbspace上的存储上限是32GB,在4K页面大小的 dbspace的存储上限是64GB,如果pagesize变大之后,存储上限也相应的翻倍。当数据量变大时,informix主要通过分片的方式来保证空间的扩容,分片的数目可以很多的。
    海量数据使用大的pagesize,并且分片,但大的pagesize从informix 10.0版本才可以设置,分片是informix很早就有的功能,而且索引也可以分片;

分片的注意事项:
   1)大表分片时不要使用like操作附,使用like操作附不能跳过片,可以使用大于、小于、[]等;
   2)从11版本开始,如果year/month/day函数出现在分片表达式中,可以跳过片;
   3)表的first extent size一般设置为总数据量的1/4,next extent size一般设置为总数据量的8/1;如果是分片的表,需要用总数据量除以总分片数,再进行计算;
   4)程序中如果不使用rowid,在分片是不要使用with rowids子句,如果这样做了,会增加一个informix内部维护的索引,另外,数据倒入速度也会变慢;
   5)联机交易系统不要使用round robin的分片方式
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics