mysql空间大小的SQL语句
介绍在mysql中如何查询所有数据库占用磁盘空间大小的SQL语句
如果想知道mysql 数据库中的每个表占用的空间、表记录的行数的话,可以打开mysql的information_schema数据库。
在该库中有一个tables表,这个表主要字段分别是:
tableschema:数据库名 tablename:表名
engine:所使用的存储引擎
tablerows:记录数
datalength:数据大小
index_length:索引大小
查询所有数据库占用磁盘空间大小的SQL语句:
select TABLESCHEMA, concat(truncate(sum(datalength)/1024/1024,2),' MB') as datasize, concat(truncate(sum(indexlength)/1024/1024,2),'MB') as indexsize
from informationschema.tables
group by TABLESCHEMA
order by datalength desc;
说明:
informationschema.tables 使用informationschema的tables表
INDEXLENGTH以b为单位 INDEXLENGTH/1024以kb为单位 INDEX_LENGTH/1024/1024以mb为单位
查询单个库中所有表磁盘占用大小的SQL语句:
select TABLENAME, concat(truncate(datalength/1024/1024,2),' MB') as datasize, concat(truncate(indexlength/1024/1024,2),' MB') as indexsize
from informationschema.tables where TABLESCHEMA = 'sql6145961'
group by TABLENAME
order by data_length desc;
说明: TABLE_SCHEMA='sql6145961'表示查询的数据库为“sql6145961”
单数据库空间总数
总量
SELECT (SUM(DATALENGTH)+SUM(INDEXLENGTH))/1024/1024 as datasum FROM informationschema.tables WHERE TABLE_SCHEMA='sql6145961';
查行数等数据
SELECT TABLENAME,DATALENGTH+INDEXLENGTH,TABLEROWS FROM informationschema.tables WHERE TABLESCHEMA='sql6145961'