查看mysql庫大小,表大小,索引大小
說明:
通過MySQL的 information_schema 數(shù)據(jù)庫,可查詢數(shù)據(jù)庫中每個表占用的空間、表記錄的行數(shù);該庫中有一個 TABLES 表,這個表主要字段分別是:
TABLE_SCHEMA : 數(shù)據(jù)庫名
TABLE_NAME:表名
ENGINE:所使用的存儲引擎
TABLES_ROWS:記錄數(shù)
DATA_LENGTH:數(shù)據(jù)大小
INDEX_LENGTH:索引大小
其他字段請參考MySQL的手冊,查看一個表占用空間的大小,那就相當(dāng)于是 數(shù)據(jù)大小 + 索引大小 。
查看所有庫的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;
+----------+
| data |
+----------+
| 104.21MB |
+----------+
1 row in set (0.11 sec)
查看指定庫的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='jishi';
+---------+
| data |
+---------+
| 26.17MB |
+---------+
1 row in set (0.01 sec)</pre>
查看指定庫的指定表的大小
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 |
+--------+
1 row in set (0.00 sec)
查看指定庫的索引大小
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)
查看指定庫的指定表的索引大小
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)
show create table test.a_yuser
*************************** 1. row ***************************
Table: a_yuser Create Table: CREATE TABLE `a_yuser` (
`email` varchar(60) NOT NULL DEFAULT '',
`user_name` varchar(60) NOT NULL DEFAULT '', KEY `cc` (`email`(5)), KEY `ccb` (`user_name`(5)), KEY `ccbc` (`email`(5),`user_name`(5))
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
ERROR:
No query specified
mysql> select count(*) from test.a_yuser;
+----------+
| count(*) |
+----------+
| 1073607 |
+----------+
1 row in set (0.00 sec)
查看一個庫中的情況
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 'test';
+---------------+----------------+-----------+------------+---------+
| Table Name | Number of Rows | Data Size | Index Size | Total |
+---------------+----------------+-----------+------------+---------+
| test.a_br | 0.4625M | 0.0259G | 0.0171G | 0.0431G |
| test.a_skuclr | 0.7099M | 0.0660G | 0.0259G | 0.0919G |
| test.a_yuser | 1.0736M | 0.0497G | 0.0213G | 0.0710G |
| test.test | 0.0000M | 0.0000G | 0.0000G | 0.0000G |
+---------------+----------------+-----------+------------+---------+
4 rows in set (0.13 sec)