昨天的问题已经解决,原因是有一张600万的业务表的健康度不高,业务侧大量的查询使用此表进行关联查询。对此表进行analyze table table_name统计信息收集后,tikv的io read立刻就降下来。
涉及到需要调整的参数如下:
-- 1、打开收集信息的自动收集功能:
mysql> show variables like 'tidb_enable_auto_analyze';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| tidb_enable_auto_analyze | ON |
+--------------------------+-------+
1 row in set (0.00 sec)
-- 2、调整tidb_auto_analyze_ratio参数,由原来的0.7调整为0.3,指的是当表中超过 30% 的行被修改时,触发自动 ANALYZE 更新。
mysql> show variables like 'tidb_auto_analyze_ratio';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| tidb_auto_analyze_ratio | 0.3 |
+-------------------------+-------+
1 row in set (0.00 sec)
-- 3、修改为北京起始时间,代表从凌晨的00点到次日的08点,这段时间进行自动收集
mysql> set global tidb_auto_analyze_start_time='00:00 +0800';
Query OK, 0 rows affected (0.01 sec)
mysql> set global tidb_auto_analyze_end_time ='08:00 +0800';
Query OK, 0 rows affected (0.03 sec)