PolarDB-X 1.0-用户指南-全局二级索引-使用全局二级索引时的注意事项
简介:
本文汇总了在使用全局二级索引时的相关注意事项。
本文汇总了在使用全局二级索引时的相关注意事项。
创建GSI时的注意事项
- 不支持在MySQL 5.6版本的RDS上创建GSI。
- 不支持在单表或广播表上创建GSI。
- 不支持在无主键的表上创建GSI。
- 不支持在UNIQUE GSI中通过任何方式使用前缀索引。
- 创建索引表时必须指定索引名。
- 创建索引表时必须指定分库或分库加分表组合的规则,不允许仅指定分表规则或不指定任何拆分规则。
- 索引表的INDEX列必须包含全部拆分键。
- GSI名称不可与主表上的其它局部索引名重复。
- GSI定义子句中,索引列与覆盖列不可重复。
- 索引表默认包含主表的全部主键和拆分键,如果没有显式包含在索引列中,默认添加到覆盖列。
- 对主表中的每个局部索引,如果引用的所有列均包含在索引表中,默认添加该局部索引到索引表。
- 对GSI的每个索引列,如果没有已经存在的索引,默认单独创建一个索引。
- 对包含多个索引列的GSI,默认创建一个联合局部索引,包含所有索引列。
- 索引定义中,索引列的length参数仅用于在索引表拆分键上创建局部索引。
- 建表后创建GSI时,会在GSI创建结束时自动进行数据校验,只有通过校验,创建GSI的DDL语句才能执行成功。
说明 您也可以使用CHECK GLOBAL INDEX对索引数据进行校验或订正。
ALTER TABLE时的注意事项
- 下表汇总了使用ALTER TABLE语句变更列的支持情况。
- 考虑到全局二级索引的稳定性和性能情况,目前禁止直接使用DROP COLUMN命令删除全局二级索引中的列。如需删除全局二级索引中的某些列,您可以先使用DROP INDEX删除对应的全局二级索引,再重新创建一个新的二级索引,或提交工单联系技术支持进行删除。
- 以上对列的分类存在重叠(如Index列包含索引表拆分键,Covering列包含主表拆分键、主键以及指定的列),若存在支持情况冲突情况,不支持的优先级高于支持。
- 下表汇总了使用ALTER TABLE语句变更索引的支持情况。
说明 考虑到全局二级索引的稳定性和性能情况,目前禁止直接使用ALTER TABLE RENAME INDEX命令重命名全局二级索引。如需修改全局二级索引名,您可以先使用DROP INDEX删除全局二级索引,再重新创建使用新名称的二级索引,或提交工单联系技术支持进行修改。
变更索引表时的注意事项
- 不支持在索引表上执行DDL、DML语句。
- 不支持带有NODE HINT的DML语句更新主表、索引表。
使用其他DDL时的注意事项
说明
- 考虑主表与索引表的数据一致性,目前禁止执行TRUNCATE TABLE语句 。如需清空主表与索引表数据,您可以使用DELETE语句删除对应的数据,或提交工单联系技术支持进行修改。
- 考虑到全局二级索引的稳定性和性能情况,目前禁止直接使用RENAME TABLE或ALTER TABLE RENAME命令重命名全局二级索引。如需修改全局二级索引名,您可以先使用DROP INDEX删除全局二级索引,修改表名后再重新创建新的二级索引,或提交工单联系技术支持进行修改。
使用DML语句时的注意事项