分享

Informix大表分片和使用注意事项

 木嘟嘟 2012-07-11
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一般设置为总数据量的1/8;如果是分片的表,需要用总数据量除以总分片数,再进行计算;
4)程序中如果不使用rowid,在分片是不要使用with rowids子句,如果这样做了,会增加一个informix内部维护的索引,另外,数据倒入速度也会变慢;
5)联机交易系统不要使用round robin的分片方式

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多