在MySQL中,有几种方法可以查看单个索引占用的磁盘空间:
SELECT
table_schema AS '数据库',
table_name AS '表名',
index_name AS '索引名',
ROUND(stat_value * @@innodb_page_size / 1024 / 1024, 2) AS '索引大小(MB)'
FROM
mysql.innodb_index_stats
WHERE
stat_name = 'size'
AND table_schema = '你的数据库名'
AND table_name = '你的表名'
AND index_name = '你的索引名';
虽然不直接显示单个索引大小,但可以查看表的总索引大小:
SHOW TABLE STATUS LIKE '表名';
然后查看Index_length
字段,这是所有索引的总大小。
SELECT
table_name,
index_name,
index_length
FROM
information_schema.tables
WHERE
table_schema = '你的数据库名'
AND table_name = '你的表名';
如果你安装了Percona工具包,可以使用:
pt-index-usage --database=数据库名 --table=表名 用户名 -p密码
innodb_index_stats
提供最精确的单个索引大小信息ANALYZE TABLE 表名;
更新统计信息如需更详细的索引分析,可以考虑使用MySQL Workbench或其他可视化工具查看表结构信息。