Поддержка Проблемы и решения Нагрузка на БД можеством циклов в одном шаблоне

  • Периодически сталкиваюсь с множеством циклов в одном шаблоне. Например в индексе для вывода в разных блоках морды разных рубрик, типов контента, таксономий и тд.

    Типа:

    <?php query_posts('cat=55&posts_per_page=2&caller_get_posts=1'); ?>
     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    ...
    <?php endif; wp_reset_query(); ?>
    
    <?php query_posts('author=123&&showposts=5'); ?>
     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    ...
    <?php endif; wp_reset_query(); ?>

    Ну и тд. Кол-во таких циклов в шаблоне может быть десяток и более.
    Насколько я понимаю — это создаёт множество запросов к БД.

    Отсюда вопрос: кроме как кешированием — как ещё можно уменьшить кол-во запросов к БД? Мб использование WP_Query будет целесообразней для таких задач (хотя мне видится сложнее в реализации и доп. нагрузке на память)?

Просмотр 2 ответов — с 16 по 17 (всего 17)
  • главный вопрос

    Да, на главный вопрос ответа (за исключением «It is inefficient (re-runs SQL queries)») — нет 🙂

    существующий в коде query_posts() можно просто заменить get_posts-ом, не изменяя остальной код

    А что мешает попробовать на одном из?

    Автор SeVlad

    (@sevlad)

    А что мешает попробовать на одном из?

    Отсутствие реального подопытного 🙂 Ну точнее это ж надо собрать «стенд», что, в данном случае, требует много времени. Которого, как всегда, мало.

    Но конечно, как только руки дойдут — экперементнём 😉

    Хотя, признаться, я думал об этом в кодексе написано. (я-то его только с гуглопереводом частично осиливаю)

Просмотр 2 ответов — с 16 по 17 (всего 17)
  • Тема «Нагрузка на БД можеством циклов в одном шаблоне» закрыта для новых ответов.