千金良方:MySQL性能优化金字塔法则
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

9.5 查看冗余索引

使用schema_redundant_indexes视图可以查看重复或冗余索引,数据来源:sys.x$schema_flattened_keys,该数据来源视图被称作schema_redundant_indexes视图的辅助视图。schema_redundant_indexes视图是MySQL 5.7.9中新增的。

下面是使用schema_redundant_indexes视图查询的结果集。

mysql> select * from schema_redundant_indexes limit 1\G
*************************** 1. row ***************************
              table_schema: test        # 包含重复或冗余索引的表对应的schema名称
                table_name: test        # 包含重复或冗余索引的表名
      redundant_index_name: i_id       # 重复或冗余索引的名称
  redundant_index_columns: id          # 重复或冗余索引中的列名
redundant_index_non_unique: 1          # 重复或冗余索引中非唯一列的数量
      dominant_index_name: i_id_id2    # 与重复或冗余索引相比占据优势(最佳)的索引名称
    dominant_index_columns: id, id2     # 占据优势(最佳)的索引中的列名
dominant_index_non_unique: 1           # 占据优势(最佳)的索引中非唯一列的数量
            subpart_exists: 0           # 重复或冗余索引是否是前缀索引
            sql_drop_index: ALTER TABLE `test`.`test` DROP INDEX `i_id`
                                        # 针对重复或冗余索引生成的drop index语句
1 row in set(0.01 sec)