[转帖]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
参考资料:
[转帖]TiDB 数据库统计表的大小方法的更多相关文章
- TiDB数据库 mydumper与loader导入数据
从mysql导出数据最好的方法是使用tidb官方的工具mydumper. 导入tidb最好的方法是使用loader工具,大概19.4G每小时的速度. 详细的步骤可以参考官网:https://pingc ...
- oracle 查询数据库表空间大小和剩余空间
dba_data_files:数据库数据文件信息表.可以统计表空间大小(总空间大小). dba_free_space:可以统计剩余表空间大小. 增加表空间即向表空间增加数据文件,表空间大小就是数据文件 ...
- SQL Server中怎么查看每个数据库的日志大小,以及怎么确定数据库的日志文件,怎么用语句收缩日志文件
一,找到每个数据库的日志文件大小 SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文 ...
- 安装Tidb数据库出现SSD硬盘IOPS不到40000的错误
今天安装tidb数据库出现IOPS过低的问题,这里如果仅仅是测试的话我们可以降低这个值,大概遇到的问题是: 解决方法: 1.我们在中控机的目录下修改某个配置文件: [tidb@:vg_adn_tidb ...
- SQL Server 游标运用:查看数据库所有表大小信息
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:运用游标 方法二:运用系统存储过程 方法三:拼接SQL ...
- SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)
原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...
- SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)
原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(C ...
- Oracle数据库导入与导出方法简述
说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问 ...
- 如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法
最近学习了下如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法,虽然MyEclipse中自带了连接数据库的方法,我也尝试了下其他方法,如有不当之处请指 ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...
随机推荐
- MySQL 基础(一)数据存储
存储在磁盘上的数据需要通过 IO 来读取,这是一个比较耗时的操作,为了能够提高访问速度,MySQL 引入了 Page 的结构作为客户端与数据交互的基本单元. Page 结构 Page 的大小默认为 1 ...
- puppeteer的简单使用
引言 对于编写应用程序,尤其是要部署上线投入生产使用的应用,QA是其中重要的一环,在过去的工作经历中,我参与的项目开发,大多是由测试同学主要来把控质量的,我很少编写前端方面的测试代码,对于测试工具的使 ...
- 通过 KernelUtil.dll 劫持 QQ / TIM 客户端 QQClientkey / QQKey 详细教程(附源码)
前言 由于 QQ 9.7.20 版本后已经不能通过模拟网页快捷登录来截取 QQClientkey / QQKey,估计是针对访问的程序做了限制,然而经过多方面测试,诸多的地区.环境.机器也针对这种获取 ...
- Apache Hudi在信息服务行业构建流批一体的实践
个人介绍 李昂 高级数据研发工程师 Apache Doris & Hudi Contributor 业务背景 部门成立早期, 为了应对业务的快速增长, 数仓架构采用了最直接的Lambda架构 ...
- 普通用户登录切换到root用户
使用su命令: 在终端中输入以下命令并按Enter键: su - 输入root用户的密码,然后按Enter键. 如果密码正确,你将会切换为root用户,并且可以执行root用户的操作. 使用sudo命 ...
- vue全屏
<template> <div> <img src="../assets/fangda.png" @click="toggleFullscr ...
- 论文复现丨基于ModelArts进行图像风格化绘画
摘要:这个 notebook 基于论文「Stylized Neural Painting, arXiv:2011.08114.」提供了最基本的「图片生成绘画」变换的可复现例子. 本文分享自华为云社区& ...
- JS对象拷贝:深拷贝和浅拷贝
摘要:对象拷贝,简而言之就是将对象再复制一份,但是,复制的方法不同将会得到不同的结果. 本文分享自华为云社区<js对象深浅拷贝,来,试试看!>,作者: 北极光之夜.. 一.速识概念: 对象 ...
- Dependencies unknown
Dependencies unknown 由父POM 托管 <properties> <boot-admin.version>2.3.0</boot-admin.vers ...
- Wiindows下更改CMake编译器为MinGW
个人环境 MinGW:使用 QT6 install 的 mingw1120_64. CMake:使用 QT6 install 的 CMake 3.24.2. 第一次编译时,默认生成VS的工程文件,为了 ...