Основной запрос страницы категории слишком загружен, когда в WordPress есть сотни подкатегорий - PullRequest
0 голосов
/ 12 марта 2020

У меня есть основная категория "Альбомы" и все Имена альбомов в качестве подкатегории.

Когда я пытаюсь открыть категорию-альбомы. php страница или Скажем, страница категории альбома занимает слишком много нагрузки.

Ниже задан запрос.

SELECT  wp_posts.ID
    FROM  wp_posts
    LEFT JOIN  wp_term_relationships
       ON (wp_posts.ID = wp_term_relationships.object_id)
    WHERE  1=1
      AND  ( wp_term_relationships.term_taxonomy_id IN (4,5,6,
                7,8,9,10,11,12,13,14,15,16,17,18,....,5000)  )
      AND  wp_posts.post_type = 'post'
      AND  (wp_posts.post_status = 'publish')
    GROUP BY  wp_posts.ID
    ORDER BY  wp_posts.post_date DESC
    LIMIT  0, 30 
  1. Как оптимизировать этот запрос? Я не хочу показывать посты на странице.
  2. Я хочу показывать только список дочерних категорий по названию, а не посту.

1 Ответ

0 голосов
/ 13 марта 2020

Некоторые советы по оптимизации

SELECT  wp_posts.ID
    FROM  wp_posts
    -- LEFT   -- probably misleading
    JOIN  wp_term_relationships
       ON (wp_posts.ID = wp_term_relationships.object_id)
    WHERE  
    -- 1=1 AND  -- junk
           ( wp_term_relationships.term_taxonomy_id IN (4,5,6,
                7,8,9,10,11,12,13,14,15,16,17,18,....,5000)  )
    -- Could that changed to be   "BETWEEN 4 and 5000"  ?
      AND  wp_posts.post_type = 'post'
      AND  (wp_posts.post_status = 'publish')
    GROUP BY  wp_posts.ID
    ORDER BY  wp_posts.ID DESC  -- same(?) effect, much better optimization
    LIMIT  0, 30 

Индексы:

wp_posts:  (post_type, post_status, ID)
wp_term_relationships:  (object_id, term_taxonomy_id)
...