SQL-запрос ломает БД WordPress чаще не скоростью, а формой
В WordPress опасны не только тяжелые запросы, но и те, что обходят индексы. Если в WHERE стоит функция по полю, LIKE с ведущим % или ORDER BY по неиндексируемой колонке, MySQL быстро упрется в полный просмотр таблицы.
Проверяйте запросы перед запуском:
• есть ли фильтр по wp_posts.ID, post_type, post_status;
• не тянете ли лишние JOIN к wp_postmeta;
• не сравниваете ли meta_value как строку, если нужен числовой порядок;
• не используете ли SELECT * там, где нужны 2–3 поля.
Отдельно смотрите на wp_postmeta: это самая частая точка боли. Один лишний JOIN по метаполю на больших сайтах превращает нормальный запрос в медленный. Если можно, переносите частые фильтры в отдельную таблицу или хотя бы добавляйте условия, которые режут объем данных раньше.
Перед запуском сложного SQL делайте EXPLAIN и проверяйте rows, type и key. Если видите ALL вместо ref или range, запрос почти наверняка грузит базу лишним чтением. Лучше переписать его до применения, чем чистить последствия после.
Работа с БД WordPress
@wp_database_mastery_ww
SQL-запрос ломает БД WordPress чаще не скоростью, а формой
Этот пост опубликован в Telegram-канале Работа с БД WordPress. Подписаться можно по ссылке: @wp_database_mastery_ww.