check-unused-keys - проверка неиспользуемых индексов в MySQL
check-unused-keys - это PERL утилита, которая выводит статистику о неиспользуемых индексах (и таблиц) в MySQL. Утилита собирает информацию, основываясь на патче user_stats (от Google + Percona). Патч пользовательской статистики добавляет несколько таблиц в БД INFORMATION_SCHEMA, в том числе таблицу INDEX_STATISTICS. Она содержит данные по использованию того или иного индекса.
Установка
Утилита требует установленного патча user_stats, его можно либо установить отдельно, либо поставить пропатченные сборки от Percona:
- Описание user_stats, скачать патч можно тут
- Сборки Percona
Далее устанавливаем утилиту check-unused-keys:
wget http://check-unused-keys.googlecode.com/files/check-unused-keys chmod +x check-unused-keys
Теперь можно пользоваться.
Использование
./check-unused-keys --help
Выведет список параметров с подробным описанием.
./check-unused-keys -u mysql -p password --print-unused-tables --create-alter
Эта команда выведет все неиспользуемые индексы и таблицы. Для каждой таблици будет сгенерирован “ALTER TABLE …” SQL для удаления неиспользуемых индексов. Анализ будет проделан над всеми базами и таблицами (конкретные БД и таблицы можно указать с помощью параметров “-d”, “-t”).
Будьте внимательны - включайте опцию вывода неиспользуемых таблиц, т.к. индексы таких таблиц не учитываются. Также утилита не работает с полнотекстовыми индексами (FULLTEXT).


кстати, недавно был у перконы семинар.
Ден, ты на него попал?
@tarasov
Нет, ранее в Москве я уже слушал их доклады. Но всем, кто не был, очень советую ходить туда, куда приезжает Percona - полезно