13g10n
Напишите мне
На главную

Поиск и удаление неиспользуемых индексов в MySQL

MySQL1 минута

Рассмотрим простой и быстрый способ получить потенциальный прирост производительности и оптимизировать БД путём удаления неиспользуемых индексов.

Так или иначе спустя какое-то время разработки продукта (особенно у достаточно взрослых проектов) может возникнуть ситуация, когда некоторые индексы либо перестают использоваться в пользу новых, либо не используются вовсе из-за ошибок проектирования БД.

Эти гадкие неиспользуемые индексы (помимо того что просто занимают какое-то место на диске) несут в себе некоторую опасность в плане влияния на скорость выполнения запросов.

Лучший способ определить неиспользуемые индексы — использовать sys схему:

MySQL
select * from sys.schema_unused_indexes;

Так мы получим список всех неиспользуемых индексов на сервере, однако здесь нужно быть осторожным и помнить, что некоторые из этих индексов могу служить для ограничения уникальности. В таком случае они не используются в запросах, попадают в sys.schema_unused_indexes, но не являются бесполезными.

MySQL
Performance
Databases