通过SQL语句查看MySQL数据库的表空间状态

1. 查看数据库的索引空间大小

在MySQL Workbench中运行以下SQL语句:

  1. -- GB为单位
  2. SELECT
  3. CONCAT(ROUND(SUM(index_length)/(1024*1024*1024), 6), ' GB') AS 'Total Index Size'
  4. FROM
  5. information_schema.TABLES
  6. WHERE
  7. table_schema LIKE 'database';
  8. -- MB为单位
  9. SELECT
  10. CONCAT(ROUND(SUM(index_length)/(1024*1024), 6), ' MB') AS 'Total Index Size'
  11. FROM
  12. information_schema.TABLES
  13. WHERE
  14. table_schema LIKE 'database';

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

查看索引空间大小

2. 查看数据库的数据空间大小

在MySQL Workbench中运行以下SQL语句:

  1. -- GB为单位
  2. SELECT
  3. CONCAT(ROUND(SUM(data_length)/(1024*1024*1024), 6), ' GB') AS 'Total Data Size'
  4. FROM
  5. information_schema.TABLES
  6. WHERE
  7. table_schema LIKE 'database';
  8. -- MB为单位
  9. SELECT
  10. CONCAT(ROUND(SUM(data_length)/(1024*1024), 6), ' MB') AS 'Total Data Size'
  11. FROM
  12. information_schema.TABLES
  13. WHERE
  14. table_schema LIKE 'database';

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

查看数据空间大小

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

在MySQL Workbench中运行以下SQL语句,查看数据库中所有表的表名、表行数、数据空间大小、索引空间大小和总大小:

  1. SELECT
  2. CONCAT(table_schema,'.',table_name) AS 'Table Name',
  3. table_rows AS 'Number of Rows',
  4. CONCAT(ROUND(data_length/(1024*1024),6),' MB') AS 'Data Size',
  5. CONCAT(ROUND(index_length/(1024*1024),6),' MB') AS 'Index Size',
  6. CONCAT(ROUND((data_length+index_length)/(1024*1024),6),' MB') AS'Total Size'
  7. FROM
  8. information_schema.TABLES
  9. WHERE
  10. table_schema LIKE 'database';

其中,database是待查看数据库的名称,例如:lsqdb%。运行结果如下图所示:

查看所有表的空间状态