苏州刘三枪
1
【TiDB 版本】 v4.0.11
【问题描述】
统计信息一直不更新,可以看到rows为0的,但是data_length有数据。
通过count() 都是有数据的,但是统计信息都没有更新。
【隐藏】
都通过排查日志,发现0点-6点没有触发统计信息更新的日志:


tidb_auto_analyze_end_time
tidb_auto_analyze_ratio
我也不知道这两个参数什么时候修改的,可能是我接手之前。
整个实例 的自动更新统计信息都失效了。具体失效时间不太清楚日志只保留了几天的。
这道题我不会
(Lizhengyang@PingCAP)
2
统计信息的自动收集需要满足一定的条件才能触发,麻烦先检查下是否满足下面这些条件:
苏州刘三枪
3
都满足上面这些条件的。目前预计至少1个月以上都没有自动更新统计信息了。
配置:
“stats-lease”: “3s”
SHOW STATS_META WHERE modify_count-ROW_COUNT>0 AND ROW_COUNT>1000
表中变更的总行数大于当前行数统计
【隐藏】
目前修改了参数还是没有效果:

系统时区:

Kongdom
(Kongdom)
6
是原来就开启,还是后来修改的?如果后来修改的需要reload
Kongdom
(Kongdom)
8
执行这个,有返回结果么?
SHOW STATS_HEALTHY WHERE healthy BETWEEN 1 AND 50;
Kongdom
(Kongdom)
10
生产环境么?不是生产环境建议reload一下看看
修改配置参数
执行 reload
命令滚动分发配置、重启相应组件:
tiup cluster reload ${cluster-name} [-N <nodes>] [-R <roles>]
苏州刘三枪
11
是生产环境
通过命令获取的配置是为true的。
curl -G http://172.16.71.22:10080/debug/zip?seconds=30 > profile.zip
profile.zip (5.1 MB)
你参考一下,看看是不是哪里没有配置对。
这道题我不会
(Lizhengyang@PingCAP)
12
1.可以从 tidb.log 中搜索下,看下有无关键字 auto analyze triggered
;
2.如果线上允许的话,可以临时新建一张表,插入超过 1000 条记录,观察下统计信息自动收集是否会被触发。
这道题我不会
(Lizhengyang@PingCAP)
14
昨天晚上刚上线的表实时数据变化频繁吗?如果每分钟内都有数据写入那可能不满足触发自动统计信息收集的条件,可以先通过 show table status
看下。
Kongdom
(Kongdom)
15
手工能analyze一张表么?有没有一种可能是analyze报错
yilong
(yi888long)
19
目前所有的表都不更新吗? 所有表都不断的有DML操作吗?