Оптимизация индексов в WordPress: где они помогают, а где только тормозят
В БД WordPress лишний индекс — это не ускорение, а дополнительная работа при каждом INSERT, UPDATE и DELETE. Поэтому сначала смотрят на запросы, а не на количество индексов в таблице. Чаще всего нагрузку дают фильтры по post_type, post_status, post_parent, meta_key и user_id.
Проверяйте три вещи:
— есть ли в WHERE и JOIN поля без индекса;
— не дублирует ли индекс уже существующий составной;
— не используется ли индекс только для редких админских запросов, которые можно пережить без него.
Типичная ошибка — ставить отдельный индекс на каждую колонку. Для запросов WordPress чаще полезнее составной индекс в порядке, который совпадает с условиями поиска. Если запрос ищет по meta_key и потом по post_id, индекс должен начинаться с meta_key, а не наоборот. Иначе СУБД просто не сможет его нормально использовать.
Перед удалением старого индекса проверьте EXPLAIN на реальных запросах и сравните не только скорость чтения, но и цену записи. Правильный индекс ускоряет выборку без заметного роста нагрузки на обновления; лишний индекс делает наоборот. Схема проста: сначала лог запросов, потом EXPLAIN, и только после этого изменение структуры.
Работа с БД WordPress
@wp_database_mastery_ww
Оптимизация индексов в WordPress: где они помогают, а где только тормозят
Этот пост опубликован в Telegram-канале Работа с БД WordPress. Подписаться можно по ссылке: @wp_database_mastery_ww.