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=‘DB_NAME’
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= 'DB_NAME'  group by table_schemaorder 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 TABLEgroup 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 TABLEand table_schema = ‘db_name’
 and TABLE_NAME = ‘table_name’
 
group by TABLE_NAME
order by size_g desc
limit 20
;

数据库大小

select concat(round(sum(data_length/1024/1024),2),'MB') as data
from information_schema.tables
where table_schema= '数据库名';

表和索引大小

use information_schema;
SELECT
TABLE_NAME,
(DATA_LENGTH/1024/1024) as DataM ,
(INDEX_LENGTH/1024/1024) as IndexM,
((DATA_LENGTH+INDEX_LENGTH)/1024/1024) as AllM,
TABLE_ROWS
FROM
TABLES
WHERE
TABLE_SCHEMA = '数据库名'
order by table_rows desc;