HUGE表的存储方式有以下几个优点:
①同一个列的数据都是连续存储的,可以加快某一个列的数据查询速度;
②连续存储的列数据,具有更大的压缩单元和数据相似性,可以获得远优于行存储的压缩效率,压缩的单位是区;
③条件扫描借助数据区的统计信息进行精确过滤,可以进一步减少IO,提高扫描效率;
④允许建立二级索引;
⑤支持以 ALTERTABLE 的方式添加或者删除PK 和UNIQUE 约束。
HUGE表分类
非事务型 HUGE 表
非事务型HUGE 表的增、删、改是直接对HUGE 表进行写操作,不写UNDO 日志,直接操纵文件,速度快,并发性能不高,但也因此导致不支持事务。当非事务型HUGE 表在操作过程中出现系统崩溃或者断电等问题时,因为修改时采取的是直接写的策略,所以有可能会出现数据不一致的问题。
事务型HUGE 表
事务型HUGE 表,通过增加RAUX、DAUX和UAUX 行辅助表,减少了事务型HUGE 表增、删、改操作的IO,提高效率,同时提高并行性能。事务型HUGE 表支持UNDO 日志,实现了事务特性。
使用HUGE表时应注意存在以下一些限制
1.建HUGE表时仅支持定义NULL、NOTNULL、UNIQUE约束以及PRIMARYKEY,后两种约束也可以通过ALTERTABLE的方式添加,但这两种约束不检查唯一性;
2.HUGE不允许建立聚簇索引,允许建立二级索引,不支持建位图索引,其中UNIQUE索引不检查唯一性;
3.不支持SPACELIMIT(空间限制);
4.不支持建立全文索引;
5.不支持使用自定义类型;
6.不支持引用约束;
7.不支持IDENTITY自增列;
8.不支持大字段列;
9.不支持建触发器;
10.不支持游标的修改操作;
11.PK和UNIQUE约束不检查唯一性,对应的索引都为虚索引;UNIQUE索引也不检查唯一性,为实索引,索引标记中不包含唯一性标记,即和普通二级索引相同;
12.不允许对分区子表设置SECTION和WITH/WITHOUTDELTA;
13.当事务型HUGE表进行了较多增删改操作时,应对其进行数据重整操作,以提高性能。