读性能慢-业务变动

  1. 表结构发生变化

  • 问题定位
    查看监控 Cluster-TiDB -> DDL -> DDL OPM 查看近期是否有 DDL 操作
    通过 TiDB SQL 查询历史上 50条 DDL 操作
    如:
    admin show DDL jobs 50;

  • 解决方法
    主要原因有二

  • 在 create index 后,由于统计信息收集可能还未完成,或者集群中设置了auto analyze 的时间窗口。此时统计信息并不准确,导致执行计划跑偏。
    我们可以通过在创建完索引后,单独对新建索引进行统计信息收集,或对整个表进行一次全量统计信息收集。相关语句如下

  • 在读写压力较大的集群上,由于部分 DDL 是会有磁盘 IO 开销的,此时将会时查询的 Duration 升高