ANALYZE TABLE INDEX 失败

版本:v6.1.0
问题描述: 上午新建一个索引,然后仪表盘被
ANALYZE TABLE $tablename INDEX $indexname;刷屏。

查看
SHOW ANALYZE STATUS;
状态为 runtime error: slice bounds out of range [-1:]。

健康度图

错误日志:

该怎么解决???

看样子像是这个问题。
https://github.com/pingcap/tidb/issues/35948

1 个赞

像是,但是不知道怎么解决。

admin check 下 看看索引数据对的上不?不行重建下索引看看能不能好

把新建的索引删除了,现在ANALYZE TABLE $tablename 失败

手动analyze table下看看,如果手动成功后,一般后续自动的就可以了0

手动自动均报错。

看github上的issue目前还没有解决办法

临时的解决,可以把auto_analyze的时间控制在很短的时间来解决频繁刷屏的问题

另外:
可以建一个相同表结构的表,然后把数据导过去,看手动能不能正常analyze,如果可以的话可以用删表重命名来绕过这个问题

晚上我会尝试 alter table $TABLENAME engine=innodb;来重建表。看看能解决不能吧。 建表导数据再 rename 会影响业务正常使用。

alter 这个可能不太好用,engine=innodb只是兼容的写法,应该做不到mysql的回收空间或者其他作用,重建表起作且有业务低峰期可以用cdc的路由同步来达到尽量小的业务影响

也可以先把自动analyze设置到几分钟,然后手动写脚本analyze先饶过

不行试试升级吧,感觉是遇到了 bug