本次测试使用
mysql数据库
数据库名demo
show databases;
use information_schema;
select * from information_schema.tables;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables;
select table_schema ,concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables where table_schema like '%%' group by table_schema order by data desc;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables where table_schema='demo' ;
select table_name,round(sum(data_length/1024/1024),2) as size from information_schema.tables where table_schema='demo' group by table_name order by size desc;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables where table_schema='demo' and table_name='t_student' ;
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='demo' 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