mysql查詢庫大小,錶行數,索引大小
SQL/">MySQL的 information_schema 資料庫,儲存著資料庫的容量和使用資訊。可查詢資料庫中每個表佔用的空間、表記錄的行數。
Tables表的結構
CREATE TEMPORARY TABLE `TABLES` ( `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', `TABLE_NAME` varchar(64) NOT NULL DEFAULT '', `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '', `ENGINE` varchar(64) DEFAULT NULL, `VERSION` bigint(21) unsigned DEFAULT NULL, `ROW_FORMAT` varchar(20) DEFAULT NULL, `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL, `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL, `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL, `MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL, `INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL, `DATA_FREE` bigint(21) unsigned DEFAULT NULL, `AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL, `CREATE_TIME` datetime DEFAULT NULL, `UPDATE_TIME` datetime DEFAULT NULL, `CHECK_TIME` datetime DEFAULT NULL, `TABLE_COLLATION` varchar(32) DEFAULT NULL, `CHECKSUM` bigint(21) unsigned DEFAULT NULL, `CREATE_OPTIONS` varchar(255) DEFAULT NULL, `TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT '' ) ENGINE=MEMORY DEFAULT CHARSET=utf8;
- 主要欄位說明
TABLE_SCHEMA : 資料庫名 TABLE_NAME:表名 ENGINE:所使用的儲存引擎 TABLE_ROWS:記錄數 DATA_LENGTH:資料大小 INDEX_LENGTH:索引大小
-
例項
-
查詢指定資料庫的所有表名稱,行數
USE information_schema; SELECT TABLE_NAME,table_rows FROM TABLES WHERE TABLE_SCHEMA = '資料庫名字' ORDER BY table_rows DESC;
- 查詢指定庫的資料大小,索引大小
SELECT CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'MB') AS total_data_size, CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS total_index_size FROM TABLESWHERE table_schema='資料庫名字';