mysql查看表空间占用情况

注:database为要查看的数据库名称

1、查看索引

(1)单位是GB

SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024*1024), 6), ' GB') AS 'Total Index Size' 
FROM information_schema.TABLES WHERE table_schema LIKE '${database}'; 
+------------------+ 
| Total Index Size | 
+------------------+ 
| 1.70 GB          | 
+------------------+

(2)单位是MB

SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 6), ' MB') AS 'Total Index Size' 
FROM information_schema.TABLES WHERE table_schema LIKE '${database}';

2、查看表空间

(1)单位是GB

SELECT CONCAT(ROUND(SUM(data_length)/(1024*1024*1024), 6), ' GB') AS 'Total Data Size' 
FROM information_schema.TABLES WHERE table_schema LIKE '${database}'; 
+-----------------+ 
| Total Data Size | 
+-----------------+ 
| 3.01 GB         | 
+-----------------+

(2)单位是MB

SELECT CONCAT(ROUND(SUM(data_length)/(1024*1024), 6), ' GB') AS 'Total Data Size' 
FROM information_schema.TABLES WHERE table_schema LIKE '${database}'; 

(3)单位是Bytes

mysql> show table status like 't1' \G
*************************** 1. row ***
           Name: t1
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 18381
Max_data_length: 0
   Index_length: 0
      Data_free: 2198304                 //查看此处值
 Auto_increment: NULL
    Create_time: 2018-03-21 11:09:20
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)

mysql > select * from INFORMATION_SCHEMA.TABLES where ENGINE='InnoDB'; 

3、查看数据库所有表的信息

SELECT CONCAT(table_schema,'.',table_name) AS 'Table Name', 
    table_rows AS 'Number of Rows', 
    CONCAT(ROUND(data_length/(1024*1024*1024),6),' G') AS 'Data Size', 
    CONCAT(ROUND(index_length/(1024*1024*1024),6),' G') AS 'Index Size' , 
    CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),6),' G') AS'Total'
FROM information_schema.TABLES 
WHERE table_schema LIKE '${database}'; 
posted @ 2019-09-19 10:24  不倒翁Jason  阅读(7009)  评论(0编辑  收藏  举报