健康度低于阀值没有执行统计
自动收集统计信息表级别是串行的,看下mysql.analyze_jobs表里记录的正在执行和历史执行的统计信息收集任务
tidb_auto_analyze_ratio
的最小值为 0.3 你改0.2没用
设置了 也没有执行啊
历史执行里也找不到纪录吗
这个问题我也遇到过了,对于表比较多,每张表行数较多的场景,会有这个问题,<6.5之前的版本系统是串行做的analyze table,效率很低,>=6.5的版本支持并发做了,但是从健康度校准这块TIDB做的不是很完美,我们也在REVIEW这块的源码,看看是否可以添加更多的协程做
一般是不满足anto analyze条件。
多中场景在触发auto analyze前,SQL响应耗时就增加几倍~几十倍了
两个数值 0.3 1000
如楼上几位大佬所说的,
1、tidb_enable_auto_analyze是否打开;
2、要关注是否满足auto_analyze的tidb_auto_analyze_ratio阈值(最小是0.3);
3、表里数据是否低于1000行,低于1000行不会触发自动收集统计信息;
5.2 好像没这个参数tidb_enable_auto_analyze,查不到这个参数,是不是时间区域有问题 要设置+0800
检查下是否开启了该参数,以及触发条件
5.2 没有这个tidb_enable_auto_analyze参数
不好意思,之前没有注意版本号,这个是5.2版本对应的FAQ
触发条件还是得查查
表里数据不够1000吧
有2000万条记录
改成1 试试