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

问题描述 投票:0回答:2

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

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

mysql optimization indexing
2个回答
14
投票

我认为此信息在现有的 MySQL 安装中不可用。

Percona 为 MySQL 制作工具和补丁来收集索引使用数据。

参见:

另请参阅:

MySQLIndexAnalyzer

的 Java 应用程序感兴趣,它有助于查找 redundant 索引。 但这个工具不知道哪些索引未被使用。


0
投票

mysql -u <user> --password=<password> <database> -e 'SELECT object_schema, object_name, index_name FROM sys.schema_unused_indexes WHERE object_schema="<database>";'

其中“object_schema”是数据库名称,“object_name”将是表,“index_name”如您所料。

此处参考信息:

30.4.3.32 schema_unused_indexes 视图

© www.soinside.com 2019 - 2024. All rights reserved.