看issue号就知道了,是个老/难问题。
执行SQL发一下?我也在生产环境排查一下
我线上找了一下,即便modify_count > count,还是会自动analyze的(我设置的自动analyze时间在00:00 ~ 08:00,所以白天没有自动analyze)。你看下有没有analyze的job?
select table_schema,table_name,start_time,state,fail_reason from mysql.analyze_jobs where table_name='<table_name>';
2 个赞
https://github.com/pingcap/tidb/blob/v6.5.4/statistics/handle/update.go#L1008
确实如此,我也找到了6.5.4判断是否需要分析的这个方法。
if float64(tbl.ModifyCount)/tblCnt <= autoAnalyzeRatio {
return false, ""
}
return true, fmt.Sprintf("too many modifications(%v/%v>%v)", tbl.ModifyCount, tblCnt, autoAnalyzeRatio)
里面是这样写的。即使ModifyCount>tblCnt也应该不会导致不能自动分析。
不能自动分析的原因,应该另有原因。
2 个赞
那就奇怪了,我复现一下吧。这个不是我们的环境。
2 个赞
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。