前段时间发现sql经常不按照预期的索引走,而且最严重的有次发生在重启的mysql机器上。
后来通过万能的google发现是tokudb的bug导致的,虽然percona的文档说新版本已经fix,但是mariadb最新版上看起来仍然没有完全修复。
具体现象就是执行show index from [table_name]返回的Cardinality为0,或者非常低的数值。
准确的修复步骤忘了,按照回忆整理如下:

INSTALL PLUGIN tokudb_background_job_status SONAME 'ha_tokudb.so';
SELECT @@tokudb_version;

SET SESSION TOKUDB_ANALYZE_IN_BACKGROUND=1;
SET SESSION TOKUDB_ANALYZE_MODE=TOKUDB_ANALYZE_RECOUNT_ROWS;
ANALYZE TABLE feed;
select * from INFORMATION_SCHEMA.TOKUDB_BACKGROUND_JOB_STATUS;

然后等待后台执行完ANALYZE,即可恢复。

标签: none

添加新评论