如何计算MySQL中索引的大小
我想确定我的索引的大小,他们是主要索引。 这恰好在MySQL集群上,但我不认为这是重要的。
我想这是你要找的。
show table status from [dbname] http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
 如果你正在使用InnoDB表,你可以从mysql.innodb_index_stats获得单个索引的大小。  “大小”统计包含答案,在页面中,所以你必须乘以它的页面大小, 默认是16K 。 
 select database_name, table_name, index_name, stat_value*@@innodb_page_size from mysql.innodb_index_stats where stat_name='size'; 
 扩展Vajk Hermecz的答案。 
 这是如何得到所有的索引大小,以MB为单位,没有PRIMARY(这是表本身),按大小sorting。 
 SELECT database_name, table_name, index_name, round(stat_value*@@innodb_page_size/1024/1024, 2) size_in_mb FROM mysql.innodb_index_stats WHERE stat_name = 'size' AND index_name != 'PRIMARY' ORDER BY 4 DESC; 
 在MyISAM ,每个索引块都是4 KB页面填充到fill_factor索引logging,每个索引logging的key length + 4字节长。 
  Fill factor通常是2/3 
 至于InnoDB ,表总是聚集在PRIMARY KEY ,没有单独的PRIMARY KEY索引 
我没有使用,但也许MySQL Index Analyzer可能会有所帮助。
使用phpMyAdmin,查看表结构时,底部会有一个Details链接。 一旦你点击它,它会显示你在表上标有空间使用的索引的总大小。
我不认为它会单独显示每个索引。