MySQL中查询表及索引大小的方法
查询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;
踩过这个坑,还有下一个坑等着你,这一路就是给自己填坑,坑填多了,也就习惯了,直到这一路平坦了,也就无怨无悔了。