Задать вопрос
Protossan
@Protossan
студент

Как можно оптимизировать запрос на главной странице?

Сайт с двумя миллионами записей, и запрос

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND ( wp_posts.ID NOT IN (
SELECT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id IN (34,171) ) )
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0, 40


, который выполняет обычный цикл на главной
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>


выполняется почти 8 секунд
5d760892dc6fa762936072.png
Насколько я понимаю, все дело в SQL_CALC_FOUND_ROWS? Как его можно убрать? Или для постраничной этот параметр обязателен? Может его можно вынести в простой запрос
SELECT COUNT(*) FROM wp_posts
WHERE 1=1
AND ( wp_posts.ID NOT IN (
SELECT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id IN (34,171) ) )
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')

?
  • Вопрос задан
  • 252 просмотра
Подписаться 3 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
  • beONmax
    Профессия WordPress разработчик
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы