不像是频繁更新的问题。
表里有522w行,如果需要让healthy掉到30,需要改动522w*0.7= 360w行左右。
半小时才更新几千。
看看日志是否有什么报错信息。
不像是频繁更新的问题。
表里有522w行,如果需要让healthy掉到30,需要改动522w*0.7= 360w行左右。
半小时才更新几千。
看看日志是否有什么报错信息。
https://github.com/pingcap/tidb/issues/43437
确实有个类似的bug,是影响4.0这个版本的。
大致的意思是,触发自动分析有个条件就是1分钟内没有写入。
如果不断地写,就不会触发自动分析。
这也许可以解释为啥自动分析没有触发。但是感觉不应该导致手动分析也没有结果。
产品bug呀
这么想一下,确实,我们不少4.0版本的客户有反馈过类似的问题,不过因为行业原因,大部分夜间业务停止,会自动analyze,所以没有特别明显。
关键我手动分析都没啥用
我们写了脚本,健康度低于50就会分析,每天脚本执行两次
更新其实不是太频繁,我们有个核心表,比这个频繁多了
核心表的健康度正常?自动分析也正常?
是啊,自动分析也正常,这个手动分析都没有用
核心表大概5个小时左右健康度就从100降到50以下了,大概一天分析3次,自动一次,手动两次,不然cpu会特别高
应该是更新频繁导致的
关键一直是30,不奇怪吗
show stats_HISTOGRAMS where db_name=‘test’ and table_name=‘kk’\G;
解决了,先把统计信息删了。DROP STATS,在analyzy
删除统计信息的具体语法能发一下吗?
收到。多谢
这是个啥原理?删除原先的统计信息,然后重新分析,感觉类似缓存?
估计是原来统计信息里面某个值是有问题的,然后每次处理都过不去。drop掉重新分析就好了。