TiDB 自动收集统计信息失效,平稳业务查询突然变慢故障

线上 TiDB 集群业务流量稳定无波动,表结构、索引、业务 SQL 均未做修改。某天大量常用查询耗时陡增,慢查询日志暴增,TiKV 硬件负载正常无热点。查看执行计划发现优化器放弃合适索引走全扫描,手动执行 ANALYZE 后查询性能立刻恢复,但隔几天问题重复出现。

1 个赞

用explain analyze看是否走了正确索引。

1 个赞

看看统计信息的健康度如何。如果表数据量很大,统计信息收集不及时,可能会导致执行计划异常。
经常出现,1可以手动定时收集该部分表;2针对该类SQL绑定执行计划。

1 个赞

表有没有频繁的更新或者新增操作导致频繁触发analyze,导致查询时统计信息不准确从而导致优化器选错执行计划

1 个赞

自动统计信息收集(auto-analyze)机制失效,统计信息随 DML 变更持续过期,优化器误判数据分布选错执行计划

1 个赞

是不是每天少量数据,统计一直老旧不准

1 个赞

搞个定时任务吧,对健康度低于某个阈值的表做下analyze

1 个赞
  1. 定期手动执行ANALYZE;
  2. 调整自动收集阈值与时段;
  3. 对高频 SQL 绑定执行计划。
1 个赞

根源是自动 ANALYZE 触发条件苛刻、后台采样任务阻塞,统计信息老化后优化器代价估算失真,误选全表扫描。

1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。