Оптимизация индексов в WordPress: как убрать лишнее и не сломать поиск
В wp_postmeta и wp_options часто появляются индексы, которые не помогают запросам, а только замедляют запись и раздувают таблицу. Сначала смотрим, какие поля реально участвуют в WHERE, JOIN и ORDER BY, а не добавляем индекс “на всякий случай”.
Рабочая схема простая:
• найти медленные запросы и проверить EXPLAIN;
• оставить индекс под самые частые фильтры;
• убрать дубли, где индекс повторяет левую часть другого;
• для составных индексов держать порядок полей под конкретный запрос.
Частая ошибка — индексировать всё подряд, включая текстовые поля без понятного шаблона выборки. В итоге MySQL не использует индекс, а таблица становится тяжелее при каждом INSERT и UPDATE. Ещё одна проблема — отдельные индексы на поля, которые всегда идут вместе: лучше один составной, чем два лишних.
Перед изменениями делайте резервную копию и проверяйте влияние на реальные запросы, а не на теорию. Если после удаления индекса поиск или фильтр стали медленнее, возвращайте его и ищите другой способ ускорения: чаще всего проблема в самом запросе, а не в базе.
Работа с БД WordPress
@wp_database_mastery_ww
Оптимизация индексов в WordPress: как убрать лишнее и не сломать поиск
Этот пост опубликован в Telegram-канале Работа с БД WordPress. Подписаться можно по ссылке: @wp_database_mastery_ww.