PolarDB-X 1.0-用户指南-全局二级索引-使用全局二级索引时的注意事项

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文汇总了在使用全局二级索引时的相关注意事项。

本文汇总了在使用全局二级索引时的相关注意事项。

创建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语句变更列的支持情况。
语句 是否支持变更主表拆分键 是否支持变更主表主键(也即索引表主键) 是否支持变更本地唯一索引列 是否支持变更索引表拆分键 是否支持变更Unique Index列 是否支持变更Index列 是否支持变更Covering列
ADD COLUMN 无该场景 不支持 无该场景 无该场景 无该场景 无该场景 无该场景
ALTER COLUMN SET DEFAULT和ALTER COLUMN DROP DEFAULT 不支持 不支持 支持 不支持 不支持 不支持 不支持
CHANGE COLUMN 不支持 不支持 支持 不支持 不支持 不支持 不支持
DROP COLUMN 不支持 不支持 仅当唯一键中只有1列时支持 不支持 不支持 不支持 不支持
MODIFY COLUMN 不支持 不支持 支持 不支持 不支持 不支持 不支持
  • 说明
  • 考虑到全局二级索引的稳定性和性能情况,目前禁止直接使用DROP COLUMN命令删除全局二级索引中的列。如需删除全局二级索引中的某些列,您可以先使用DROP INDEX删除对应的全局二级索引,再重新创建一个新的二级索引,或提交工单联系技术支持进行删除。
  • 以上对列的分类存在重叠(如Index列包含索引表拆分键,Covering列包含主表拆分键、主键以及指定的列),若存在支持情况冲突情况,不支持的优先级高于支持。
  • 下表汇总了使用ALTER TABLE语句变更索引的支持情况。
语句 是否支持
ALTER TABLE ADD PRIMARY KEY 支持
ALTER TABLE ADD [UNIQUE/FULLTEXT/SPATIAL/FOREIGN] KEY 支持,您可以同时在主表和索引表上添加局部索引,索引名称不可与GSI重复。
ALTER TABLE ALTER INDEX index_name {VISIBLE | INVISIBLE} 支持,仅在主表执行(禁止变更GSI状态)。
ALTER TABLE {DISABLE | ENABLE} KEYS 支持,仅在主表执行(禁止变更GSI状态)。
ALTER TABLE DROP PRIMARY KEY 禁止
ALTER TABLE DROP INDEX 仅支持删除普通索引或全局二级索引。
ALTER TABLE DROP FOREIGN KEY fk_symbol 支持,仅在主表执行。
ALTER TABLE RENAME INDEX 禁止

  • 说明 考虑到全局二级索引的稳定性和性能情况,目前禁止直接使用ALTER TABLE RENAME INDEX命令重命名全局二级索引。如需修改全局二级索引名,您可以先使用DROP INDEX删除全局二级索引,再重新创建使用新名称的二级索引,或提交工单联系技术支持进行修改。

变更索引表时的注意事项

  • 不支持在索引表上执行DDL、DML语句。
  • 不支持带有NODE HINT的DML语句更新主表、索引表。

使用其他DDL时的注意事项

语句 是否支持
DROP TABLE 支持
DROP INDEX 支持
TRUNCATE TABLE 不支持
RENAME TABLE 不支持
ALTER TABLE RENAME 不支持


说明

  • 考虑主表与索引表的数据一致性,目前禁止执行TRUNCATE TABLE语句 。如需清空主表与索引表数据,您可以使用DELETE语句删除对应的数据,或提交工单联系技术支持进行修改。
  • 考虑到全局二级索引的稳定性和性能情况,目前禁止直接使用RENAME TABLE或ALTER TABLE RENAME命令重命名全局二级索引。如需修改全局二级索引名,您可以先使用DROP INDEX删除全局二级索引,修改表名后再重新创建新的二级索引,或提交工单联系技术支持进行修改。

使用DML语句时的注意事项

相关实践学习
跟我学:如何一键安装部署 PolarDB-X
《PolarDB-X 动手实践》系列第一期,体验如何一键安装部署 PolarDB-X。
相关文章
|
2月前
|
关系型数据库 分布式数据库 数据库
PolarDB常见问题之加了索引但是查询没有使用如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
4天前
|
存储 关系型数据库 分布式数据库
数据库索引回表困难?揭秘PolarDB存储引擎优化技术
PolarDB分布式版存储引擎采用CSM方案均衡资源开销与可用性。
数据库索引回表困难?揭秘PolarDB存储引擎优化技术
|
27天前
|
SQL 关系型数据库 分布式数据库
数据库索引,一文揭秘PolarDB XPlan索引选择
深度解读PolarDB分布式版XPlan的索引选择
数据库索引,一文揭秘PolarDB XPlan索引选择
|
3月前
|
SQL 算法 关系型数据库
PolarDB-X的XPlan索引选择
对于数据库来说,正确的选择索引是基本的要求,选错索引轻则导致查询缓慢,重则导致数据库整体不可用。PolarDB-X存在多种不同的索引,局部索引、全局索引、列存索引、归档表索引。本文主要介绍一种CN上的局部索引算法:XPlan索引选择。
125771 13
PolarDB-X的XPlan索引选择
|
4月前
|
关系型数据库 定位技术 索引
在关系型数据库中,常见的索引种类包括哪些
在关系型数据库中,常见的索引种类包括哪些
492 0
|
5月前
|
存储 关系型数据库 分布式数据库
PolarDB-X HTAP新特性 ~ 列存索引
随着数据爆炸式的增长,传统的OLTP和OLAP解决方案基于简单的读写分离或ETL模型,将在线库的数据以T+1的方式抽取到数据仓库中进行计算,这种方案存在存储成本高、实时性差、链路和维护成本高等缺陷。 为应对数据爆炸式增长的挑战,PolarDB分布式版本基于对象存储设计了一套列存索引(Clustered Columnar Index,CCI)功能,支持将行存数据实时同步到列存存储上
76011 148
|
7月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL版重磅推出的列存索引(
PolarDB MySQL版重磅推出的列存索引(
344 1
|
7月前
|
关系型数据库 Go 数据库
《提高查询速度:PostgreSQL索引实用指南》
《提高查询速度:PostgreSQL索引实用指南》
384 0
|
7月前
|
SQL 缓存 关系型数据库
PolarDB-X 混沌测试实践:如何衡量数据库索引选择能力
随着PolarDB分布式版的不断演进,功能不断完善,新的特性不断增多,整体架构扩大的同时带来了测试链路长,出现问题前难发现,出现问题后难排查等等问题。原有的测试框架已经难以支撑实际场景的复杂模拟测试。因此,我们实现了一个基于业务场景面向优化器索引选择的混沌查询实验室,本文之后简称为CEST(complex environment simulation test)。
|
8月前
|
关系型数据库 分布式数据库 数据库
PolarDB for PostgreSQL 14:全局索引
PolarDB for PostgreSQL 14 相较于 PostgreSQL 14,提供了更多企业级数据库的特性。本实验将体验其中的全局索引功能。
768 0

热门文章

最新文章

相关产品

  • 云原生分布式数据库 PolarDB-X