[转帖]TiDB 数据库统计表的大小方法

tidb,数据库,统计表,大小,方法 · 浏览次数 : 0

小编点评

## TiDB 统计表大小方法总结 以下是三种获取 TiDB 表格大小的方法: 1. **基于 METRICS_SCHEMA.store_size_amplification** * 使用 SQL 查询:`SELECT Approximate_Size FROM METRICS_SCHEMA.store_size_amplification` * 使用 Grafana 面板:PD - statistics balance 面板中的 Size amplification 指标 2. **基于 INFORMATION_SCHEMA.TABLE_STORAGE_STATS** * 使用 SQL 查询:`SELECT table_size/1000 FROM INFORMATION_SCHEMA.TABLE_STORAGE_STATS` * 使用 tidb-ctl:`tiup ctl:v5.1.3 tidb table disk-usage -d sbtest -t sbtest1` 3. **使用 tidb-ctl** * 使用脚本:`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=0for i in $tmpdotablename=`echo $i |cut -d: -f 1`tablesize=`tiup ctl:v5.1.3 tidb table disk-usage -d $1 -t $tablename`sum=$[sum+tablesize]doneecho $sum` * 使用脚本:`echo $sum`

正文

简介:TiDB统计表的大小,列出了一些方法:

1、第一种的统计方式:

基于统计表 METRICS_SCHEMA.store_size_amplification

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

  1. SELECT
  2. db_name,
  3. table_name,
  4. ROUND(SUM(total_size / cnt), 2) Approximate_Size,
  5. ROUND(SUM(total_size / cnt / (SELECT
  6. ROUND(AVG(value), 2)
  7. FROM
  8. METRICS_SCHEMA.store_size_amplification
  9. WHERE
  10. value > 0)),
  11. 2) Disk_Size
  12. FROM
  13. (SELECT
  14. db_name,
  15. table_name,
  16. region_id,
  17. SUM(Approximate_Size) total_size,
  18. COUNT(*) cnt
  19. FROM
  20. information_schema.TIKV_REGION_STATUS
  21. WHERE
  22. db_name = @dbname
  23. AND table_name IN (@table_name)
  24. GROUP BY db_name , table_name , region_id) tabinfo
  25. 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统计

  1. select table_schema,table_name,TABLE_SIZE/1000 from INFORMATION_SCHEMA.TABLE_STORAGE_STATS where table_schema='dba_ml';
  2. +--------------+------------+-----------------+
  3. | table_schema | table_name | TABLE_SIZE/1000 |
  4. +--------------+------------+-----------------+
  5. | ff_ml | melon | 164.4330 |
  6. +--------------+------------+-----------------+

3 、第三种统计方式:

使用tidb-ctl:

  1. tiup ctl:v5.1.3 tidb table disk-usage -d sbtest -t sbtest1
  2. Starting component `ctl`: /root/.tiup/components/ctl/v5.1.3/ctl tidb table disk-usage -d sbtest -t sbtest1
  3. 2624

使用脚本方式:

  1. tmp=`mysql -uroot -hxxx -P4000 -Ne "SELECT table_name FROM information_schema.tables where TABLE_SCHEMA='$1'"|while read a ;do echo "$a";done`
  2. sum=0
  3. for i in $tmp
  4. do
  5. tablename=`echo $i |cut -d: -f 1`
  6. tablesize=`tiup ctl:v5.1.3 tidb table disk-usage -d $1 -t $tablename`
  7. sum=$[sum+tablesize]
  8. done
  9. echo $sum

参考资料:

TiDB 集群管理常见问题 | PingCAP Docs

TiDB 统计数据库占用大小的N种方法 - 墨天轮

文章知识点与官方知识档案匹配,可进一步学习相关知识

与[转帖]TiDB 数据库统计表的大小方法相似的内容:

[转帖]TiDB 数据库统计表的大小方法

简介:TiDB统计表的大小,列出了一些方法: 1、第一种的统计方式: 基于统计表 METRICS_SCHEMA.store_size_amplification 要预估 TiDB 中一张表的大小,你可以参考使用以下查询语句: SELECT db_name, table_name, ROUND(SUM

[转帖]TiDB 统计数据库占用大小的N种方法

TiDB之路2022-03-06 3896 前言 TiDB 如何统计数据库占用空间大小 四种方法 方法一 TiDB 统计数据库占用大小的第一种方法是监控。通过查看 {cluster-name} - Overview,可以查看Current storage size面板,获取当前集群已用数据库空间大小

[转帖]TiDB 数据库的调度

https://docs.pingcap.com/zh/tidb/stable/tidb-scheduling#%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86 PD (Placement Driver) 是 TiDB 集群的管理模块,同时也负责集群数据的实时调度。本文档介绍

[转帖]TiDB 数据库核心原理与架构 [TiDB v6](101)笔记

https://www.jianshu.com/p/01e49a93f671 description: "本课程专为将在工作中使用 TiDB 数据库的开发人员、DBA 和架构师设计。 本门课侧重于 TiDB 数据库的架构和设计原则,这是未来管理、开发、性能调整和故障排除的基础。在学习本课程前,您需要

[转帖]tidb数据库5.4.3和6.5.3版本性能测试对比

https://tidb.net/blog/5454621f 一、测试需求: 基于历史原因,我们的业务数据库一直使用5.4.3,最近由于研发提出需求:需要升级到6.5.3版本,基于版本不同,需要做个压力测试已验证2个版本之间的性能差异。 二、测试目的: 验证tidb数据库5.4.3和6.5.3版本性

[转帖]tidb 修改root密码

http://blog.51yip.com/tidb/2452.html 通过 {pd-ip}:{pd-port}/dashboard 登录 TiDB Dashboard,登录用户和口令为 TiDB 数据库 root 用户和口令。如果你修改过数据库的 root 密码,则以修改后的密码为准,默认密码为

[转帖]TiDB损坏多副本之有损恢复处理方法

https://tidb.net/blog/b1ae4ee7 TiDB分布式数据库采用多副本机制,数据副本通过 Multi-Raft 协议同步事务日志,确保数据强一致性且少数副本发生故障时不影响数据的可用性。在三副本情况下,单副本损坏可以说对集群没什么影响,但当遇到多副本损坏的损坏丢失的时候,如何快

[转帖]TiDB 整体架构

https://docs.pingcap.com/zh/tidb/stable/tidb-architecture 与传统的单机数据库相比,TiDB 具有以下优势: 纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容 支持 SQL,对外暴露 MySQL 的网络协议,并兼容大多数 MySQL 的语法,在

[转帖]TiDB 热点问题处理

TiDB 热点问题处理 本文介绍如何定位和解决读写热点问题。 TiDB 作为分布式数据库,内建负载均衡机制,尽可能将业务负载均匀地分布到不同计算或存储节点上,更好地利用上整体系统资源。然而,机制不是万能的,在一些场景下仍会有部分业务负载不能被很好地分散,影响性能,形成单点的过高负载,也称为热点。 T

[转帖]云数据库是杀猪盘么,去掉中间商赚差价,aws数据库性能提升 10 倍!价格便宜十倍。

https://tidb.net/blog/021059f1 于是乎dba中的冯大嘴喊出了云数据库就是杀猪盘。让每个公司自建数据库。 那么有没有一种数据库又便宜又好用呢。有 哪就是tidb数据库。 之前一个dba工程师的工作内容可能包括以下几个方面: 监控带宽、流量、并发、业务接口等关键资源及访问信