用SQL命令查看Mysql数据库大小 统计数据库空间占用
-- 1. 进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; -- 2. 查询所有数据的大小: select concat(round(sum(data_length/1024/1024),2),\'MB\') as data from information_schema.tables ; -- 3. 查看实例下所有数据库的空间占用情况 select table_schema ,concat(round(sum(data_length/1024/1024),2),\'MB\') as data from information_schema.tables where table_schema like \'db_name_%\' group by table_schema ; -- 4.查看指定数据库的大小: select concat(round(sum(data_length/1024/1024),2),\'MB\') as data from information_schema.tables where table_schema=\'home\' ; -- 5. 查看指定数据库下的所有表的空间占用情况 select table_name,round(sum(data_length/1024/1024),2) as size from information_schema.tables where table_schema=\'mycommunity_zhhy_1\' group by table_name order by size ; -- 6. 查看指定数据库的某个表的大小 select concat(round(sum(data_length/1024/1024),2),\'MB\') as data from information_schema.tables where table_schema=\'home\' and table_name=\'members\' ;
select
table_schema
,round(sum(data_length/1024/1024),2) as data_length
,round(sum(DATA_FREE/1024/1024),2) as data_free
,round(sum(INDEX_LENGTH/1024/1024),2) as INDEX_LENGTH
from information_schema.tables
where table_schema=\'mycommunity_bigdata\'
group by table_schema
order by data_length
;
select TABLE_SCHEMA ,sum(DATA_LENGTH)/1024/1024/1024 as size_DATA_LENGTH_g ,sum(INDEX_LENGTH)/1024/1024/1024 as size_INDEX_LENGTH_g ,sum(DATA_FREE)/1024/1024/1024 as size_DATA_FREE_g ,sum((DATA_LENGTH+INDEX_LENGTH+DATA_FREE))/1024/1024/1024 as size_g from information_schema.tables where table_type = \'BASE TABLE\' group by TABLE_SCHEMA order by size_DATA_FREE_g ; select TABLE_NAME ,sum(DATA_LENGTH)/1024/1024/1024 as size_DATA_LENGTH_g ,sum(INDEX_LENGTH)/1024/1024/1024 as size_INDEX_LENGTH_g ,sum(DATA_FREE)/1024/1024/1024 as size_DATA_FREE_g ,sum((DATA_LENGTH+INDEX_LENGTH+DATA_FREE))/1024/1024/1024 as size_g from information_schema.tables where table_type = \'BASE TABLE\' and table_schema = \'db_name\' -- and TABLE_NAME = \'table_name\' group by TABLE_NAME order by size_g desc limit 20 ;