Индексы в WordPress: где ускоряют сайт, а где только раздувают базу
Индекс нужен не «для скорости вообще», а под конкретный запрос. В WordPress чаще всего тормозят выборки по wp_postmeta, wp_usermeta, wp_options и таблицам плагинов: фильтры по meta_key, сортировки, JOIN и поиск автозагрузки.
Перед добавлением проверь:
— медленный запрос через EXPLAIN;
— поля в WHERE, JOIN, ORDER BY;
— порядок полей в составном индексе: сначала равенства, потом диапазон/сортировка;
— нет ли уже похожего индекса, который MySQL может использовать.
Типовая ошибка — индексировать всё подряд: meta_value, длинные текстовые поля, дублирующие комбинации. Это ускоряет часть SELECT, но замедляет INSERT/UPDATE и увеличивает размер базы.
Для мета-таблиц часто полезнее составной индекс вроде (meta_key, post_id), чем отдельный по каждому полю. Индекс, который не выбирается оптимизатором, — просто балласт.
Правило: сначала найти конкретный медленный запрос, потом подобрать минимальный индекс под него, затем проверить на копии базы. Не лечи всю БД одним ALTER.
Работа с БД WordPress
@wp_database_mastery_ww
Индексы в WordPress: где ускоряют сайт, а где только раздувают базу
Этот пост опубликован в Telegram-канале Работа с БД WordPress. Подписаться можно по ссылке: @wp_database_mastery_ww.