如何识别MySQL数据库中未使用的索引?

Chr*_*nry 11 mysql indexing optimization

我最近完全重写了一个大项目.在这样做的过程中,我整合了大量随机MySQL查询.我记得在开发前一个代码库的过程中,我一时兴起创建了索引,我确信有很多不再使用的代码.

有没有办法监视MySQL的索引使用情况,以确定正在使用哪些索引,哪些不是?

Bil*_*win 14

我不认为这个信息在MySQL安装库存中可用.

Percona为MySQL提供工具和补丁来收集索引使用数据.

看到:

也可以看看:

您可能还对名为MySQLIndexAnalyzer的Java应用程序感兴趣,它有助于查找冗余索引.但是这个工具不知道哪些索引未被使用.

  • +1 - 我也推荐 Percona 补丁。我无权访问它们,因此最终记录了每次查询运行,然后针对查询运行 EXPLAIN 离线解析此表并计算使用了哪些索引/曾经/使用过,然后让我找出哪些 /weren'吨/! (2认同)