一、功能介绍
支持对分区表创建全局二级索引。
二、支持版本
内核版本 TXSQL 8.0 3.1.15及以上。
三、适用场景
在分区表中通过创建全局二级索引,来提高分区表查询的效率和性能。
四、注意事项
·DDL 使用限制(以下是 页面文档 的 partition_option 中不支持的 DDL 操作)。
·DISCARD PARTITION 和 IMPORT PARTITION:因为全局索引和 partition 不在一个表空间中。
·COALESCE PARTITION:当表为无主键表时,执行此操作全局索引会出现重复记录。
·REORGANIZE PARTITION:可能导致全局索引出现重复数据。
·EXCHANGE PARTITION:全局索引和 partition 不在一个表空间中,全局索引无法交换数据。
·REBUILD PARTITION:无主键分区表可能出现重复记录。
·REPAIR PARTITION:可能导致全局索引丢失数据。
·全局索引不能作为主键索引,包括隐式转为主键的情况(不包含主键时,unique 的全局索引无法创建)。
·unique 的全局索引必须包含所有的分区字段。
·全局索引暂不支持需要 copying data 的分区级别 DDL。
·全局索引不支持压缩表(修改 KEY_BLOCK_SIZE)及透明页压缩。
·全局索引不支持非分区表,非分区表创建全局索引时会自动转为普通索引。
·包含全局索引的 hash 分区不支持 add、coalesce 操作。
·包含全局索引的分区表在 truncate 分区时必须使用 alter table truncate partition with global index 的语法。
·全局索引中不能包含 Generated Columns。
·全局索引的 AHI 被默认禁止。
·推荐使用 simple select 方式来访问全局索引,不建议使用特殊用法。
五、建立全局索引表
create table t1 ( a bigint unsigned not null PRIMARY KEY, b varchar(16) not null, pad varchar(128) not null, key key_b(b) global — 增加 global 关键字,在建表中指定全局索引)PARTITION BY RANGE(a) ( PARTITION p0 VALUES LESS THAN (10000000), PARTITION p1 VALUES LESS THAN (20000000), PARTITION p2 VALUES LESS THAN (30000000), PARTITION p3 VALUES LESS THAN (MAXVALUE));
六、在已经存在的表中建立全局索引
create index key_b on t1(b) global; — 增加 global 关键字,在建索引中指定全局索引alter table t1 add index key_b(b) global;