TokuDB:索引基数降至零

时间:2017-10-23 14:40:02

标签: mysql cardinality tokudb

我在Percona的某些数据库服务器上使用TokuDb。 我设置了数据库,添加了第一块数据,并且每件事情都运行正常。

过了一段时间并添加了数百万条目,我注意到db性能的重大损失。事实证明,一些表的索引的基数为零。 这不会同时影响多个表,而是影响多个表。

mysql错误日志列出了一些像这样的问题

TokuDB: Auto running foreground analysis for [table_name], delta_activity 1827 is greater than 30 percent of 0 rows. - failed, likely a job already running.

所以我尝试禁用auto_analyze以防止出现此问题。现在这个日志不再被推送,但索引基数再次被删除。

经过测试的解决方案:

  1. 我尝试通过执行

    来修复索引
    ANALYZE table [table_name]
    

    它有效。但现在几天之后,同样的问题又回来了。

  2. 已禁用auto_analyze

    set tokudb_analyze_time = 0
    
  3. 系统:

    • Percona TokuDB 5.7.16-10

    • 表格容纳了大约1,100万行

      CREATE TABLE `table1` (
        `field1` char(2) COLLATE utf8_bin NOT NULL,
        `field2` char(15) COLLATE utf8_bin NOT NULL,
        `field3` char(15) COLLATE utf8_bin NOT NULL,
        ... a lot other field2 ...
       PRIMARY KEY (`field1`,`field2`),
       KEY `index_1` (`field3`,`field2`,`field1`) USING BTREE,
       ... other indexes ...
      ) ENGINE=TokuDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin    ROW_FORMAT=TOKUDB_LZMA;
      

    表格在重负荷下每天多次,如同一小时。

0 个答案:

没有答案