什么情况下modifycount会大于count?

看issue号就知道了,是个老/难问题。

执行SQL发一下?我也在生产环境排查一下 :thinking:


我线上找了一下,即便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 个赞

:thinking:那就奇怪了,我复现一下吧。这个不是我们的环境。

2 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。