tidb 如何统计每个库和每张表的大小?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

tidb 如何统计每个库和每张表的大小?使用mysql 的统计方式好像不准

参考一下之前的示例吧

看官方文档吧,改造一下也可以统计库的
https://docs.pingcap.com/zh/tidb/stable/manage-cluster-faq#如何预估-tidb-中一张表的大小

哪个方法也不算准,tidb的表和region是多对多的

先mark一下
之前都是通过table_storage_stats表大概评估的

select table_schema,table_name,TABLE_SIZE/1000 from INFORMATION_SCHEMA.TABLE_STORAGE_STATS where table_schema=‘xxx’;

要预估 TiDB 中一张表的大小,你可以参考使用以下查询语句:

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 = @dbname
            AND table_name IN (@table_name)
    GROUP BY db_name , table_name , region_id) tabinfo
GROUP BY db_name , table_name;

在使用以上语句时,你需要根据实际情况填写并替换掉语句里的以下字段:

  • @dbname:数据库名称。
  • @table_name:目标表的名称。

此外,以上语句中:

  • store_size_amplification 表示集群压缩比的平均值。除了使用 SELECT * FROM METRICS_SCHEMA.store_size_amplification; 语句进行查询以外,你还可以查看 Grafana 监控 PD - statistics balance 面板下各节点的 Size amplification 指标来获取该信息,集群压缩比的平均值即为所有节点的 Size amplification 平均值。
  • Approximate_Size 表示压缩前表的单副本大小,该值为估算值,并非准确值。
  • Disk_Size 表示压缩后表的大小,可根据 Approximate_Sizestore_size_amplification 得出估算值。

这个就是上面kongdo发的文档里面的。

:face_with_raised_eyebrow:困了困了

不太准,但都不准

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