PolarDB MySQL支持通过统计信息近似计算单个索引的空间占用情况。
在mysql库的innodb_index_stats表中,会统计索引所使用pages数目。同时,通过innodb_page_size参数可以得到当前实例单个page的大小。综合上述信息,可以近似计算得到单个索引的空间占用信息。
如下是一个简单的SQL示例,用于近似计算test.t1表的索引空间占用情况。
mysql> SELECT
-> database_name,
-> table_name,
-> index_name,
-> concat(stat_value * @@innodb_page_size, " Bytes") index_size
-> FROM
-> mysql.innodb_index_stats
-> WHERE
-> database_name = 'test'
-> and table_name = 't1'
-> and stat_name = 'size'
-> and stat_description = 'Number of pages in the index'
-> ORDER BY
-> database_name,
-> table_name,
-> index_name,
-> index_size;
+---------------+------------+-----------------+-------------+
| database_name | table_name | index_name | index_size |
+---------------+------------+-----------------+-------------+
| test | t1 | GEN_CLUST_INDEX | 16384 Bytes |
+---------------+------------+-----------------+-------------+
1 row in set (0.00 sec)