说明:
通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间、表记录的行数;该库中有一个 TABLES 表,这个表主要字段分别是:
TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小
其他字段请参考MySQL的手册,查看一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 。
查看所有库的大小
mysql> use information_schema;
Database changed
mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;
+----------+
| data |
+----------+
| 104.21MB |
+----------+
1 row in set (0.11 sec)
查看指定库的大小
mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='jishi';
+---------+
| data |
+---------+
| 26.17MB |
+---------+
row in set (0.01 sec)
查看指定库的指定表的大小
mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='jishi' and table_name='a_ya';
+--------+
| data |
+--------+
| 0.02MB |
+--------+
row in set (0.00 sec)
查看指定库的索引大小
mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'jishi';
+------------------+
| Total Index Size |
+------------------+
| 0.94 MB |
+------------------+
1 row in set (0.01 sec)
查看指定库的指定表的索引大小
mysql> SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'test' and table_name='a_yuser';
+------------------+
| Total Index Size |
+------------------+
| 21.84 MB |
+------------------+
1 row in set (0.00 sec)
查看一个库中的情况并排序
mysql> SELECT CONCAT(table_schema,'.',table_name) AS 'Table Name', CONCAT(ROUND(table_rows/1000000,4),'M') AS 'Number of Rows', CONCAT(ROUND(data_length/(1024*1024*1024),4),'G') AS 'Data Size',CONCAT(ROUND(index_length/(1024*1024*1024),4),'G') AS 'Index Size', CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),4),'G') AS'Total'FROM information_schema.TABLES WHERE table_schema LIKE 'my' ORDER BY --total DESC;
+--------------------------------------------+----------------+-----------+------------+---------+
| Table Name | Number of Rows | Data Size | Index Size | Total |
+--------------------------------------------+----------------+-----------+------------+---------+
| my.log_task | 10.4727M | 0.7378G | 0.8315G | 1.5693G |
| my.log_goods_produce | 14.8695M | 0.6396G | 0.7509G | 1.3906G |
| my.log_gift | 6.8921M | 0.5483G | 0.5450G | 1.0933G |
| my.log_goods_drop | 5.2306M | 0.4267G | 0.4167G | 0.8433G |
| my.log_goods_consume | 8.1588M | 0.4179G | 0.4127G | 0.8306G |
| my.log_gameplay | 9.4614M | 0.3177G | 0.3963G | 0.7139G |
| my.log_dungeon | 4.7170M | 0.2962G | 0.3401G | 0.6363G |
| my.log_gold_weapon_canyu | 7.3790M | 0.2796G | 0.3298G | 0.6093G |
参考网址:
http://www.oschina.net/question/12_3673
http://blog.sina.com.cn/s/blog_4c197d420101fbl9.html