Post
查看MySQL占用磁盘空间大小
/
学无止境
本文提供了MySQL数据库空间分析的四个核心SQL查询,用于多层级容量监控。首先,通过查询information_schema.tables可汇总所有数据库的数据与索引总大小,按库排序定位占用空间最大的实例;其次,针对特定数据库,可进一步查看其当前数据量、最大容量限制、碎片空闲空间及索引占用,帮助评估库级健康状况;再次,在库内维度,可逐表统计数据与索引大小,识别大表资源消耗;最后,聚焦单表时,可获取表的总存储空间(数据+索引)及预估行数,为精细化存储优化提供依据。这些查询覆盖了从库到表的完整空间分析链路,适用于数据库容量规划与性能调优场景。
1、查看所有库:
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;
2、查看单个库:
select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size,
concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size,
concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free,
concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size
from information_schema.tables where TABLE_SCHEMA ='databasename';
3、查看单库下所有表:
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 = 'databasename' group by TABLE_NAME order by data_length desc;
4、查看单库下单表:
SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES
WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名'
评论