简介: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. SQLServer清空数据库日志

    -------SQl2008以上 清空日志-------- USE[master] GO ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE WITH NO_WAIT ...

  2. js-audio-pluging(录音)

    安装 npm i js-audio-recorder 代码 <template> <div class="BaseRecorder"> <div cl ...

  3. JS模块化编程规范1——require.js

    目录 1. 概述 2. 详论 2.1. 定义 2.2. 调用 2.3. 入口 3. 结果 4. 参考 1. 概述 require.js是各种网络APP中非常常见的JS依赖库,它其实不仅仅是个模块加载器 ...

  4. CoralCache:一个提高微服务可用性的中间件

    摘要:当数据库出问题时能降级从本地缓存的数据中查询数据,CoralCache就是这样一个提高微服务可用性的中间件. 背景 有些场景下,微服务依赖数据库中一些配置项或者数量很少的数据,但当数据库本身有问 ...

  5. Serverless,引领云计算下一个阶段

    摘要:Serverless将是微服务的"封顶之作",也是推动应用现代化的基石. 本文分享自华为云社区<[深入浅出,Paas之路]华为云.云享专家曹宗南: Serverless ...

  6. Go语言逆向技术:恢复函数名称算法

    摘要:在对程序做安全审计.漏洞检测时,通常都需要对程序做逆向分析,本文在没有符号表的情况下,提出了一种恢复函数名称的算法,方便对go语言二进制文件进行逆向分析,提升分析效率. 本文分享自华为云社区&l ...

  7. Java 图片、文件 Base64 互转

    Java 图片.文件 Base64 互转 package com.thoth.his.base.util; import java.io.FileInputStream; import java.io ...

  8. flask 上传文件,视图

    记得有template ''' 导入flask类.该类的实例将会成为我们的wsgi应用 __name__是一个适用于大多数情况的快捷方式,有了这个参数,flask才能知道在那里找到模板和静态文件等东西 ...

  9. python发送邮件+多人+附件 !!!!

    import smtplib import os from email.header import Header from email.mime.text import MIMEText # shen ...

  10. 【HZERO】权限管理

    Hzero数据权限介绍 https://open.hand-china.com/community/detail/625872021372407808#3.4 开发建议 Permission注解属性介 ...