为什么使用一段时间,统计信息差距大,造成索引使用问题。

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

如果自动收集信息不准确,健康度低,可以执行手动收集统计报告,具体语法为analyze table table_name [index index_name]

我知道操作 这个有什么办法吗,经常时间一长就不准确了

  1. 可以参考一下统计信息相关的文档:https://docs.pingcap.com/zh/tidb/stable/statistics#自动更新
  2. 另外可以看看 run-auto-analyze 有没有正确配置。https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#run-auto-analyze

需要我手动开启?

这个值是默认开启的

那为什么收集时间长了就不准?

因为设置的参数默认值是0.5,如果你的表比较大,达到了千万或者亿,那么0.5 也是比较难达到的,但是实际上数据已经增加或者减少了上百万。所以建议你对一些大表可以设置 crontab 之类的,自己定时手工收集信息。