功能介绍
支持对分区表创建全局二级索引。
支持版本
内核版本 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_SZIE)及透明页压缩。
全局索引不支持非分区表,非分区表创建全局索引时会自动转为普通索引。
包含全局索引的 hash 分区不支持 add、coalesce 操作。
包含全局索引的分区表在 truncate 分区时必须使用 alter table truncate partition with global index
的语法。
全局索引的 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;
本页内容是否解决了您的问题?