一、定义
MySQL允许在相同的列上创建多个索引,MySQL需要单独维护重复的索引,并且优化器在优化查询的时候也需要逐个地进行考虑,这会影响性能。
重复的索引是指在相同的列上按照相同的顺序创建的相同的索引。
冗余索引,如(A,B),(A)则属于冗余索引。哈希、全文索引不属于B-Tree索引的冗余索引。
二、冗余和重复索引查找方法
- 通过information_schema数据库查找
- common_schema 是一个MySQL服务器的管理框架,一套针对服务器脚本化和管理的强大的代码和视图。common_schema对于MySQL好比jQuery对于JavaScript。
- Percona Toolkit中的 pt-duplicate-key-checker工具
示例:
pt-duplicate-key-checker --user=root \
--password=xxxx \
--host=localhost \
--socket=/tmp/mysql5173.sock
三、未使用索引
Percona-Toolkit系列之pt-index-usage。