Mysql统计所有表数据量

本文介绍了一个SQL查询语句,用于从指定数据库中获取表名及其行数的近似估计值。需要注意的是,此方法得到的行数并非精确值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT TABLE_NAME, TABLE_ROWS FROM `information_schema`.`tables`  WHERE `table_schema` = 'YOUR_DB_NAME';


说明:

以上语句得出的行统计数量,并不精确,是一个大约估计的数量


### 统计 MySQL 数据库中的数据量 为了统计 MySQL 数据库中的数据量,可以使用 `COUNT()` 函数来计算中记录的数量。对于整个数据库数据量统计,则可以通过遍历所有并汇总其各自的记录数。 #### 单个数据量统计 针对单个数据量统计非常简单,只需执行如下 SQL 查询: ```sql SELECT COUNT(*) AS row_count FROM table_name; ``` 此查询返回指定中的总行数[^1]。 #### 整个数据库数据量统计 如果要获取整个数据库内所有的合计数据量,可采用以下方法之一: ##### 方法一:通过 INFORMATION_SCHEMA 利用内置的信息模式(INFORMATION_SCHEMA),能够动态地访问元数据信息。下面是一个例子展示如何实现这一点: ```sql SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name'; ``` 上述命令会列出给定数据库下各及其对应的预估行数。请注意,在某些存储引擎上(如 InnoDB),`TABLE_ROWS` 可能不是精确值而是估算的结果[^2]。 ##### 方法二:手动枚举所有格 另一种方式是先找出目标数据库下的全部名列,再逐一对它们应用 `COUNT(*)` 操作。这通常适用于那些希望得到绝对准确结果的情况: ```sql SET @db='your_database_name'; PREPARE stmt FROM ' SELECT CONCAT( "SELECT ''", t.table_name,"'' as table_name,COUNT(*) as rows FROM ",t.table_schema,".",t.table_name, IF(@i:=@i+1,(SELECT GROUP_CONCAT(" UNION ALL ", "SELECT ''",table_name,"'' ,COUNT(*) FROM ",table_schema,".",table_name)),'') ) INTO @sql FROM information_schema.tables t ,(SELECT @i:=0) i WHERE t.table_schema=? '; EXECUTE stmt USING @db; PREPARE stmt2 FROM @sql; EXECUTE stmt2; DEALLOCATE PREPARE stmt; DEALLOCATE PREPARE stmt2; ``` 这段脚本构建了一个复杂的联合查询语句,最终一次性输出各个的名字以及各自的确切行数[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值