关于如何查看一张表查看它占用的存储大小

【TiDB 版本】v 5.2.1

【问题描述】请问 tidb 集群能查一张表占用的物理磁盘大小

有相关类似帖子 如何查看一张表查看它占用的存储大小
但使用语句结果为 0 MB
%E5%9B%BE%E7%89%87

表 w_transformer_his_202110 为新表,并且刚刚插入数据为 13174297 行

是不是使用了分布式存储的方式,表 所占用磁盘空间大小 就没办法查询 ?

1 个赞

刚刚插入的话,你可以跑下 ANALYZE table 命令,然后再看看它的占用大小

2 个赞

嗯,后面想到这个问题了, ANALYZE table 之后 确实可以查询出来,但没有想明白 为啥刚刚插入新表数据 没有统计信息!!

1 个赞

自动analyze优化有一定的规则,具体可以看
https://docs.pingcap.com/zh/tidb/stable/statistics#增量收集

如果要查看表的存储占用大小,可以参考这个语句:
SELECT db_name,
table_name,
ROUND(SUM(total_size / cnt), 2) Approximate_Size,
ROUND(SUM(total_size / cnt / (SELECT ROUND(AVG(value), 2)
FROM METRICS_SCHEMA.store_size_amplification
WHERE value > 0)),
2) Disk_Size
FROM (SELECT db_name,
table_name,
region_id,
SUM(Approximate_Size) total_size,
COUNT(*) cnt
FROM information_schema.TIKV_REGION_STATUS
WHERE db_name = ‘phcore’
AND table_name IN (‘wrk_trans_control’)
GROUP BY db_name, table_name, region_id) tabinfo
GROUP BY db_name, table_name;

store_size_amplification表示集群压缩比的平均值,即为所有节点的 Size amplification 平均值。
Approximate_Size表示压缩前 表的单副本大小,该值为估算值,并非准确值
Disk_Size 表示压缩后表的大小,可根据 Approximate_Size 和 store_size_amplification 得出估算值

1 个赞

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