TiDB 数据库统计表的大小方法
TiDB统计表的大小,列出了一些方法,都是比较实用。
·
简介:TiDB统计表的大小,列出了一些方法:
1、第一种的统计方式:
基于统计表 METRICS_SCHEMA.store_size_amplification
要预估 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;
store_size_amplification
表示集群压缩比的平均值。除了使用SELECT * FROM METRICS_SCHEMA.store_size_amplification;
语句进行查询以外,你还可以查看 Grafana 监控 PD - statistics balance 面板下各节点的Size amplification
指标来获取该信息,集群压缩比的平均值即为所有节点的Size amplification
平均值。Approximate_Size
表示压缩前表的单副本大小,该值为估算值,并非准确值。Disk_Size
表示压缩后表的大小,可根据Approximate_Size
和store_size_amplification
得出估算值。
2、第二种统计方式:
基于INFORMATION_SCHEMA.TABLE_STORAGE_STATS统计
select table_schema,table_name,TABLE_SIZE/1000 from INFORMATION_SCHEMA.TABLE_STORAGE_STATS where table_schema='dba_ml';
+--------------+------------+-----------------+
| table_schema | table_name | TABLE_SIZE/1000 |
+--------------+------------+-----------------+
| ff_ml | melon | 164.4330 |
+--------------+------------+-----------------+
3 、第三种统计方式:
使用tidb-ctl:
tiup ctl:v5.1.3 tidb table disk-usage -d sbtest -t sbtest1
Starting component `ctl`: /root/.tiup/components/ctl/v5.1.3/ctl tidb table disk-usage -d sbtest -t sbtest1
2624
使用脚本方式:
tmp=`mysql -uroot -hxxx -P4000 -Ne "SELECT table_name FROM information_schema.tables where TABLE_SCHEMA='$1'"|while read a ;do echo "$a";done`
sum=0
for i in $tmp
do
tablename=`echo $i |cut -d: -f 1`
tablesize=`tiup ctl:v5.1.3 tidb table disk-usage -d $1 -t $tablename`
sum=$[sum+tablesize]
done
echo $sum
参考资料:
更多推荐
已为社区贡献1条内容
所有评论(0)