在线DDL分区表分裂、重组时,GLOBAL INDEX的处理

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v8.2.0 最新版
【复现路径】在线DDL分区表分裂、合并、重组
【遇到的问题:问题现象及影响】GLOBAL INDEX是否在DDL操作中一起重建
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

根据最新代码,在线DDL分区表分裂、重组时,观察到分区表上有GLOBAL INDEX时也支持一起在线重建了。(之前版本,如表上有GLOBAL INDEX会报错)。

  1. 我尝试根据源码理解,GLOBAL INDEX会克隆一个新的,同时也按照none->deleteonly->writeonly->reorgan->public的状态顺序,和分区表分裂、重组等操作一起过渡。这里特别的是,reorgan对于克隆的GLOBAL INDEX重建,是把将要删除的分区排除掉,遍历其他分区数据建立的。请问这样理解是否正确?

  2. 但截图中这块代码和注释如何理解,是只有UNQIUE INDEX才可以跟随在线DDL操作一起重建吗?若UNIQUE INDEX索引没包含所有分区分布键涉及的列,则看成GLOBAL INDEX,此处是为什么?

1 个赞

你们获取的知识都好新啊,global index 功能看起来还没有开发完成,等大佬回答你吧
https://docs.pingcap.com/zh/tidb/dev/system-variables#tidb_enable_global_index-从-v760-版本开始引入

太狠了,全局索引确实呼声很高,不过貌似现在支持的还是很一般。。。

那个版本能用全局了

没有看到想要的答案,顺便学习了下: 优化 SQL 性能 - 索引的最佳实践 - 《TiDB v6.1 中文文档》 - 书栈网 · BookStack

学习学习