用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
;
用SQL命令查看Mysql数据库大小 统计数据库空间占用