简介: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 数据库统计表的大小方法的更多相关文章

  1. TiDB数据库 mydumper与loader导入数据

    从mysql导出数据最好的方法是使用tidb官方的工具mydumper. 导入tidb最好的方法是使用loader工具,大概19.4G每小时的速度. 详细的步骤可以参考官网:https://pingc ...

  2. oracle 查询数据库表空间大小和剩余空间

    dba_data_files:数据库数据文件信息表.可以统计表空间大小(总空间大小). dba_free_space:可以统计剩余表空间大小. 增加表空间即向表空间增加数据文件,表空间大小就是数据文件 ...

  3. SQL Server中怎么查看每个数据库的日志大小,以及怎么确定数据库的日志文件,怎么用语句收缩日志文件

    一,找到每个数据库的日志文件大小 SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文 ...

  4. 安装Tidb数据库出现SSD硬盘IOPS不到40000的错误

    今天安装tidb数据库出现IOPS过低的问题,这里如果仅仅是测试的话我们可以降低这个值,大概遇到的问题是: 解决方法: 1.我们在中控机的目录下修改某个配置文件: [tidb@:vg_adn_tidb ...

  5. SQL Server 游标运用:查看数据库所有表大小信息

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:运用游标 方法二:运用系统存储过程 方法三:拼接SQL ...

  6. SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)

    原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...

  7. SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)

    原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(C ...

  8. Oracle数据库导入与导出方法简述

    说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问 ...

  9. 如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法

    最近学习了下如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法,虽然MyEclipse中自带了连接数据库的方法,我也尝试了下其他方法,如有不当之处请指 ...

  10. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

随机推荐

  1. 记一次 MySQL timestamp 精度问题的排查 → 过程有点曲折

    开心一刻 下午正准备出门,跟正刷着手机的老妈打个招呼 我:妈,今晚我跟朋友在外面吃,就不在家吃了 老妈拿着手机跟我说道:你看这叫朋友骗缅北去了,tm血都抽干了,多危险 我:那是他不行,你看要是吴京去了 ...

  2. Sermant重磅更新,1.3.0 release版本发布

    本文分享自华为云社区<新特性速览!Sermant重磅更新,1.3.0 release版本发布>,作者:华为云开源. Sermant社区在12月份正式发布了1.3.0 release版本,这 ...

  3. 【小白学YOLO】一文带你学YOLOv1 Testing

    摘要:本文将为初学者带详细分析如何进行YOLOv1 Testing的内容. YOLOv1 Testing 进入testing阶段,我们已经得到98个bounding box和confidence还有C ...

  4. 古有诸葛亮八卦阵阻敌,今有 iptables 护网安

    摘要:保障网络环境的安全,我们得"武装"起来,守住各个入口.怎么"武装"呢? 网络世界就和现实世界一样,总是会有些不怀好意的"人"出现,扫扫 ...

  5. 在线就能用的 SQL 练习平台(附SQL学习文档)

    对大数据和数据分析感兴趣的同学,如何入门一直是一个大问题. 而对于找工作的同学,笔试和面试环节也一直是一个让人头疼的问题. 其实企业也很头疼,不进行笔试,怕被面试者忽悠.进行笔试可能又把某些大牛筛出去 ...

  6. 火山引擎DataLeap如何解决SLA治理难题(一):应用场景与核心概念介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 基于火山引擎分布式治理的理念,数据平台数据治理团队自研了火山引擎DataLeap SLA保障平台,目前已在字节内部 ...

  7. 自然语言处理 Paddle NLP - 机器同传技术及应用-理论

    基础 自然语言处理(NLP) 自然语言处理PaddleNLP-词向量应用展示 自然语言处理(NLP)-前预训练时代的自监督学习 自然语言处理PaddleNLP-预训练语言模型及应用 自然语言处理Pad ...

  8. Netty ChannelFuture 监听三种方法

    以下是伪代码 方法一 前后代码省略 //绑定服务器,该实例将提供有关IO操作的结果或状态的信息 ChannelFuture channelFuture = bootstrap.bind(); this ...

  9. Codeforces Round #725 (Div. 3) A~G 题解记录

    补题链接:Here 1538A. Stone Game 数组 \(a\) 的大小为 \(n\) ,请问每次可以删除最左和最右侧的元素,请问最少执行多少次能删除掉数组中的最大值和最小值 (\(1\le ...

  10. jdk1.8: Consumer函数

    场景: 当我们在a方法中,需要把某些参数赋值给一个Integer类型的对象,而该对象只有在b方法才能赋值,那么我们可以在a方法中使用consumer记录我们要执行的操作,再把consumer作为参数传 ...