mysql空间大小的SQL语句

介绍在mysql中如何查询所有数据库占用磁盘空间大小的SQL语句

如果想知道mysql 数据库中的每个表占用的空间、表记录的行数的话,可以打开mysql的information_schema数据库。

在该库中有一个tables表,这个表主要字段分别是:

table_schema:数据库名
table_name:表名
engine:所使用的存储引擎
table_rows:记录数
data_length:数据大小
index_length:索引大小

查询所有数据库占用磁盘空间大小的SQL语句:

select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),’ MB’) as data_size,
concat(truncate(sum(index_length)/1024/1024,2),’MB’) as index_size
from information_schema.tables
group by TABLE_SCHEMA
order by data_length desc;

说明:
information_schema.tables 使用information_schema的tables表
INDEX_LENGTH以b为单位 INDEX_LENGTH/1024以kb为单位 INDEX_LENGTH/1024/1024以mb为单位

查询单个库中所有表磁盘占用大小的SQL语句:

select TABLE_NAME, concat(truncate(data_length/1024/1024,2),’ MB’) as data_size,
concat(truncate(index_length/1024/1024,2),’ MB’) as index_size
from information_schema.tables where TABLE_SCHEMA = ‘sql6145961’
group by TABLE_NAME
order by data_length desc;

说明:
TABLE_SCHEMA=’sql6145961’表示查询的数据库为“sql6145961”

单数据库空间总数

总量

SELECT (SUM(DATA_LENGTH)+SUM(INDEX_LENGTH))/1024/1024 as data_sum
FROM information_schema.tables WHERE TABLE_SCHEMA=’sql6145961’;

查行数等数据

SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS
FROM information_schema.tables WHERE TABLE_SCHEMA=’sql6145961’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值