【TiDB 版本】v3.0.0
【问题描述】原本10秒钟可以查询出来的SQL,今天需要10分钟,甚至根本查不动,凡涉及到该表的所有SQL都变慢,而其他表是正常的。慢日志中输出了执行计划,直接查看执行计划,发现执行计划是有问题的,手动analyze table后执行计划恢复,问题得到解决。
统计信息没有自动更新,查看到官方文档解决方案有两种
- 手动
analyze table
,配合 crontab 定期analyze
,维持统计信息准确度。 - 自动
auto analyze
,调低analyze ratio
阈值,提高收集频次,并设置运行时间窗口。示例如下:set global tidb_auto_analyze_ratio=0.2;
set global tidb_auto_analyze_start_time='00:00 +0800';
-
set global tidb_auto_analyze_end_time='06:00 +0800';
请问两种方案哪种更好?