MySQL查询表的数据长度

        有时候我们需要知道MySQL中某些表的数据量是多少,如果单个表,可以通过客户端查看表信息得到,但是要获取几十上百张表的时候,那就需要通过sql方式去查询了。在MySQL中有一个表information_schema的数据库,里面存的是MySQL的元数据,包括数据库信息、表信息、字段信息等等。

information_schema表结构

schemata表:数据库信息

tables表:表信息,包括每个表有多少个列等信息。

columns表:所有表中的表字段信息。

statistics表:索引信息。

user_privileges表:用户权限信息。

schema_privileges表:数据库权限。

table_privileges表:表权限。

column_privileges表:列权限信息。

character_sets表:字符集信息。

collations表:字符集对照信息。

collation_character_set_applicability表:相当于collations表和character_sets表的前两个字段的一个对比,记录了字符集之间的对照信息。

table_constraints表:用于记录表的描述存在约束的表和约束类型。

key_column_usage表:记录具有约束的列。

routines表:存储过程和函数的信息,不包含自定义的过程或函数信息。

views表:视图信息,需要有show view权限。

triggers表:触发器的信息,需要有super权限。

 查询方式

-- 如果查询多个表,可以把table_name 条件改为in
use information_schema;  
SELECT
	DATA_LENGTH, -- 数据长度,单位字节
	INDEX_LENGTH,  -- 索引长度
	CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'M') AS 数据长度 -- 数据长度 转换为M, 
	
FROM
	information_schema.TABLES 
WHERE
	table_schema = 'test'  -- 查询哪个数据库
	AND table_name in ('test_data');   -- 查询数据库下到哪个表

参考链接:mysql查询表的数据大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值