查詢MySQL表的大小及索引大小可以通過系統庫information_schema中的TABLES表來實現。
該表常用的一些字段:
TABLE_SCHEMA:數據庫名
TABLE_NAME:表名
ENGINE:所使用的存儲引擎
TABLES_ROWS:記錄行數
DATA_LENGTH:表大小
INDEX_LENGTH:索引大小
1、可以查詢數據庫的數據行數、表空間、索引空間,如下,將[數據庫名]替換成你自己的數據庫名即可。
SELECT TABLE_SCHEMA AS '庫名',
CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 萬行') AS '行數',
CONCAT(ROUND(SUM(DATA_LENGTH)/(1024*1024*1024), 2), ' GB') AS '表空間',
CONCAT(ROUND(SUM(INDEX_LENGTH)/(1024*1024*1024), 2), ' GB') AS '索引空間',
CONCAT(ROUND(SUM(DATA_LENGTH+INDEX_LENGTH)/(1024*1024*1024),2),' GB') AS'總空間'
FROM information_schema.TABLES WHERE TABLE_SCHEMA = [數據庫名];
2、當然也可以不匯總,查詢下各個表的情況進行分析,如下,將[數據庫名]替換成你自己的數據庫名即可。
SELECT TABLE_NAME AS '表名',
CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 萬行') AS '行數',
CONCAT(ROUND(DATA_LENGTH/(1024*1024*1024), 2), ' GB') AS '表空間',
CONCAT(ROUND(INDEX_LENGTH/(1024*1024*1024), 2), ' GB') AS '索引空間',
CONCAT(ROUND((DATA_LENGTH+INDEX_LENGTH)/(1024*1024*1024),2),' GB') AS'總空間'
FROM information_schema.TABLES WHERE TABLE_SCHEMA = [數據庫名] ORDER BY TABLE_ROWS DESC;
https://www.cnblogs.com/pcheng/p/7730279.html