-
表结构发生变化
-
问题定位
查看监控 Cluster-TiDB -> DDL -> DDL OPM 查看近期是否有 DDL 操作
通过 TiDB SQL 查询历史上 50条 DDL 操作
如:
admin show DDL jobs 50; -
解决方法
主要原因有二 -
在 create index 后,由于统计信息收集可能还未完成,或者集群中设置了auto analyze 的时间窗口。此时统计信息并不准确,导致执行计划跑偏。
我们可以通过在创建完索引后,单独对新建索引进行统计信息收集,或对整个表进行一次全量统计信息收集。相关语句如下 -
在读写压力较大的集群上,由于部分 DDL 是会有磁盘 IO 开销的,此时将会时查询的 Duration 升高