Задать вопрос
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')

?
  • Вопрос задан
  • 248 просмотров
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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