MySQL中有一个库information_schema
,该库记录了很多mysql本身的信息,其中有一个表TABLES
就记录了每个表占用的空间、表记录的行数等信息。
这个表主要字段分别是:
1、TABLE_SCHEMA : 数据库名
2、TABLE_NAME:表名
3、ENGINE:所使用的存储引擎
4、TABLES_ROWS:记录数
5、DATA_LENGTH:数据大小
6、INDEX_LENGTH:索引大小
其他字段请参考MySQL的手册,查看一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 。
1、切换库
1 | mysql> use information_schema; |
2、查看指定库中各表的大小
1 | mysql> SELECT table_name,concat(round(DATA_LENGTH/1024/1024,2),'MB') AS DATA FROM TABLES WHERE table_schema='table_test'; |
3、查看指定库中各表索引的大小
1 | mysql> SELECT table_name,concat(round(INDEX_LENGTH/1024/1024,2),'MB') AS DATA FROM TABLES WHERE table_schema='table_test'; |