【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5
https://docs.pingcap.com/zh/tidb/stable/statement-summary-tables#statements_summary_history
按该文档的说法,该表再所有值都保持默认的情况下应该只保留12小时的数据
包括控制台的显示也是只保留12小时
但是实际表里的数据最早可以追溯到3月份
这是bug还是文档没描述清楚
【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5
https://docs.pingcap.com/zh/tidb/stable/statement-summary-tables#statements_summary_history
按该文档的说法,该表再所有值都保持默认的情况下应该只保留12小时的数据
包括控制台的显示也是只保留12小时
但是实际表里的数据最早可以追溯到3月份
这是bug还是文档没描述清楚
这个表一共有多少条记录?
4w多 从3月份的数据一直持续到现在
文档说 “为了监控指标的即时性,statements_summary
里的数据定期被清空,只展现最近一段时间内的聚合结果。清空周期由系统变量 tidb_stmt_summary_refresh_interval
设置。如果刚好在清空之后进行查询,显示的数据可能很少。”
没说要清空 statements_summary_history
既然叫 history肯定保留较长历史记录了
把文档看全啊
以上配置生效后,statements_summary
每 30 分钟清空一次,所以 statements_summary_history
保存最近 12 小时的历史数。statements_summary_evicted
保存最近 24 个发生了 evict 的时间段记录;statements_summary_evicted
则以 30 分钟为一个记录周期,表容量为 24 个时间段。
SHOW GLOBAL VARIABLES LIKE ‘%tidb_stmt%’;
这些参数看下的,我的理解只有超过tidb_stmt_summary_max_stmt_count这个值才会按时间删除
我看错了,不过我检查了2个 tidb集群,这个表里面的数据都很多天了,肯定不是12小时删除
tidb_stmt_summary_max_stmt_count默认3000
我这里都4890条了
这个应该是文档没有描述清楚。
如果很长一段时间都没有负载的话,可能存在很久以前的数据。准确的描述应该是对于每种类型的 SQL 语句,保存最近 24 个时间窗口(每个窗口默认半个小时)的的数据, 但如果某个 SQL 语句在半个月前出现过,后面一直没怎么出现,而且集群里面的 SQL 总数不超过 tidb_stmt_summary_max_stmt_count(默认 3000 ), 就会查到 半个月前的数据。
顺手的话可以给官网提个 修改建议~
改大tidb_stmt_summary_max_stmt_count
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。