查看表的健康度

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述
查看表的健康度,使用show stats_healthy来实现,想问一下,能不能通过SELECT的形式查询呢?

【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)
1 个赞

为啥不用 show stats_healthy ,可以加 where 条件其实也蛮好用的啊。

查了下 COLUMNS 表,并未找到类似健康度的字段,可能不支持通过表去 select

1 个赞

我需要通过SQL形式补充到监控中。

1 个赞

show stats_healthy 只需要 select 权限就能用了,监控的话给只读 select 问题不大吧:grinning:

1 个赞

查询哪个表呢?

1 个赞

目前应该就只有show stats_healthy这种方式可以查询健康度,这个语句需要select权限,应该是满足你的需求的。具体可以看:
统计信息简介 | PingCAP Docs

2 个赞

他应该是想通过select的方式拿到结果对接到他自己的监控里,show的方式可能对接不上~

1 个赞

是这个意思

1 个赞

:joy: 好的吧。这种需求是不是得求助大佬了

1 个赞


根据mysql.stats_meta表里的modify_count,count两列计算

2 个赞

:+1::+1::+1:找了几个验算了一下,还真是差不多~

SELECT 
	b.TABLE_SCHEMA,b.table_name,ROUND((1-a.modify_count/a.count)*100,0) healthy
FROM mysql.stats_meta a
LEFT JOIN INFORMATION_SCHEMA.TABLES b ON a.table_id = b.TIDB_TABLE_ID
WHERE b.TABLE_SCHEMA = ''
AND b.table_name = ''
ORDER BY table_id
2 个赞

:+1::+1::+1:

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。