Лишний индекс в WordPress часто тормозит сильнее, чем его отсутствие
В wp_posts, wp_postmeta и wp_options индексы нужно держать под запросы, а не «на всякий случай». Если поле почти не участвует в WHERE, JOIN или ORDER BY, его индекс чаще мешает: растёт размер таблицы, дольше идут INSERT/UPDATE, тяжелее бэкапы.
Проверьте сначала частые запросы. Полезный индекс обычно закрывает:
— фильтр по meta_key + post_id в wp_postmeta;
— выборку опубликованных записей по post_type + post_status + post_date;
— быстрый поиск по slug, если он реально используется в маршрутизации.
Опасные места: составные индексы с одинаковым первым столбцом, дубли вроде отдельного индекса на колонку, которая уже есть в составном, и индексы под редкие админские выборки. Их лучше убирать после проверки EXPLAIN и реального профиля запросов. Для больших таблиц это часто даёт больше, чем попытка «ускорить всё сразу» 🔧
Правило простое: индекс должен обслуживать конкретный запрос. Если запроса нет или он почти не встречается, индекс — лишняя нагрузка на базу.
Работа с БД WordPress
@wp_database_mastery_ww
Лишний индекс в WordPress часто тормозит сильнее, чем его отсутствие
Этот пост опубликован в Telegram-канале Работа с БД WordPress. Подписаться можно по ссылке: @wp_database_mastery_ww.