Работа с БД WordPress
Работа с БД WordPress
@wp_database_mastery_ww

Индексы в WordPress часто тормозят не запрос, а лишняя спешка с их добавлением

Индексы в WordPress часто тормозят не запрос, а лишняя спешка с их добавлением

В `wp_posts`, `wp_postmeta` и `wp_options` индексы нужны не «на всякий случай», а под конкретный фильтр, сортировку или JOIN. Если поле редко участвует в `WHERE`, индекс на него обычно только раздувает таблицу и замедляет запись. Сначала смотрят на реальные запросы, потом уже на схему.

Практика простая:
• индексируют колонки из `WHERE`, `JOIN`, `ORDER BY`
• составные индексы строят в порядке наиболее селективных условий
• не дублируют уже покрываемые индексы
• проверяют, не ломает ли индекс `LIKE '%...%'` и функции над полем

Частая ошибка в WordPress — пытаться ускорить `meta_query` одним индексом на `meta_key`. Для `wp_postmeta` это полезно только в части кейсов. Если фильтр идет по `meta_key` и `post_id`, нужен индекс, который помогает именно связке, а не абстрактному поиску по одному столбцу. Иначе MySQL все равно упрется в чтение лишних строк.

Перед добавлением индекса всегда смотри `EXPLAIN`: если запрос уже берет нужный индекс, новый не даст выигрыша. Если видишь `type=ALL`, `rows` большой, а фильтр узкий — это кандидат на доработку схемы. После изменения индексов обязательно проверь не только чтение, но и вставки: лишний индекс делает запись тяжелее.

Хороший индекс экономит миллисекунды на каждом запросе. Плохой — тихо ест ресурсы каждый день.
Этот пост опубликован в Telegram-канале Работа с БД WordPress. Подписаться можно по ссылке: @wp_database_mastery_ww.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.