连续 analyze 分区表多个分区时,有某个分区 SQL 显示执行成功,但是实际并没有统计信息生成

一次性 analyze 了12个分区,查看 SQL 执行状态都是正常的:

通过show analyze status;可以看到 analyze 也是成功的。

但是通过show stats_meta来看,并没有真正生效。

所以怀疑是连续执行多个分区的 analyze table,导致失败的。

1 个赞

你看一下那个 warning 是什么呢?

重复执行时候,发现还是一样,没有成功。

只要执行 analyze table 都会有个 warning 的,就是提示你采样率之类的信息

另外看一下 select * from mysql.stats_meta ,这个是看一下 storage 的情况

mysql.stats_meta里的值是准确的,难道show stats_meta是某个 tidb-server 自己缓存的么?

到另外一台 tidb-server 节点上执行,发现也是未 analyze 之前错误值,所以应该也不是 tidb-server 里内存缓存的。 应该是 analyze 执行结束后由一个 tidb-server sync 到其他节点上的数据都是错的。跟 TiKV 里存储的值都不一样

是bug吗

应该算是一个 BUG,刚才手动重启了一个 tidb-server,那台 tidb-server 的健康度和统计信息都正常了。

当时 analyze的那个节点的 show stats_meta 也是坏的吗?

同步 stats 异常问题。是个缺陷。Orz

8.5 会优化掉。

1 个赞


之前只是对出问题的分区来进行 analyze 一直不能修复,对整表进行了 analyze table 现在统计信息正常了。

搞得深

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