ALTER TABLE ADD INDEX 执行卡死、无效

【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题


所有 ALTER TABLE ADD INDEX 卡死、未生效
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

ADMIN SHOW DDL;看下现在的ddl任务有哪些,都是啥状态

DDL加索引之前,TiDB是否有做过其他变更操作

看下现在的ddl任务

 admin show ddl jobs;

看row_count有没有变化。

1 个赞

还可以看tidb日志是不是在哗哗的刷日志 :joy:


执行如上语句后,如上图,截图之前我又执行了一下增加索引的语句,一直在那running

runing观察就好

show processlist看下对应sql有等待事件没有

admin show ddl
看看完成的行数是否有所变化?

running等到synced就行了。
执行完ddl后,这个连接可以断开了。

加索引的表多大数据量?

看看tidb的日志文件

7.1 版本? 默认打开了 tidb_ddl_enable_fast_reorg ,先确认下是不是ON
如果 ON, 那么 show config where name like ‘%temp-dir%’ 看看这个目录对应的磁盘是不是空间爆了

三个方向:数据量、资源限制、并发冲突

ddl操作,只能等了

get 一个知识点

没有变化,每次添加索引都超时失败,有些懵逼


“超时失败” 是啥情况?
能展开说说吗?
比如啥错误,啥现象等等

表数据量多大呢,逃不出以下原因:1.表过大时,ALTER TABLE ADD INDEX操作可能需要很长时间才能完成,表现出来是卡死。2.TiDB集群的资源不足,例如内存、CPU或磁盘空间 3.表上已经有很多索引了 4.有其他并发操作锁表,操作被阻塞