pdoTools и большое количество ресурсов

Столкнулся с несколькими проблемами при увеличении количества ресурсов(class_key=Ticket) до нескольких десятков тысяч.
Имею следующую структуру:
около 20 разделов(обычный ресурс), в каждом из них 10-30 подразделов(раздел с тикетами), и в этих подразделах в сумме примерно 50 000 тикетов. Вывод меню этих разделов и подразделов через pdoMenu занимает 2-3 секунды. При том что вывод всех этих тикетов с пагинацией происходит за секунду максимум. Вопрос, это нормально? Если нормально то как можно ускорить? Сайт на modxcloud, аккаунт для разработчиков.
Основное время в логе занимает «2.2643330: End template tree»
И почему при использовании &select в pdoMenu все меню выводится в один уровень? Буду рад любой информации)

upd: По поводу select разобрался, не включил в выборку parent

Лог выборки:
0.0030921: pdoTools loaded
0.0000448: xPDO query object created
0.0002580: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `pagetitle`, `menutitle`, `parent`
0.0009210: Processed additional conditions
0.0014598: Added where condition: modResource.parent:IN(58,248,64,175,235,59,183,231,227,228,184,185,232,188,229,189,230,191,60,234,29201), modResource.template:IN(8,9), modResource.published=1, modResource.deleted=0, modResource.context_key=web
0.0001502: Sorted by modResource.menuindex, ASC
0.0003600: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`pagetitle`, `modResource`.`menutitle`, `modResource`.`parent` FROM `modx_site_content` AS `modResource` WHERE  ( `modResource`.`parent` IN (58,248,64,175,235,59,183,231,227,228,184,185,232,188,229,189,230,191,60,234,29201) AND `modResource`.`template` IN (8,9) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`context_key` = 'web' )  ORDER BY modResource.menuindex ASC "
0.0025480: SQL executed
0.0002191: Total rows: 243
0.0003960: Rows fetched
0.0011399: Returning raw data
0.0003300: Tree was built
0.0000281: Start template tree
0.0094159: Created inline chunk
0.1393471: Created inline chunk
0.0079360: Created inline chunk
1.9923520: End template tree
0.0004539: Created inline chunk
2.1598842: Total time
32 243 712: Memory usage
Дмитрий Кондаков
18 ноября 2014, 05:04
modx.pro
1 160
0

Комментарии: 7

Василий Наумкин
18 ноября 2014, 08:53
0
Вывод меню этих разделов и подразделов через pdoMenu занимает 2-3 секунды
А ты параметр &level какой указываешь? По умолчанию он равен 10, то есть туда попадут все 50000 тикетов, хоть и не отобразятся, потому что скрыты для показа в меню (по умолчанию).

Подбери верный &level (2-3) и будет быстро. При пагинации количество ресурсов ограничивается сразу.
    Дмитрий Кондаков
    18 ноября 2014, 08:58
    0
    &level я подобрал, 2 стоит. Сама выборка верная, ничего лишнего не берется
      Василий Наумкин
      18 ноября 2014, 09:38
      0
      Ну, у тебя выбирается 243 ресурса за раз — так что 2-3 секунды это нормально.

      Вызывай сниппет кэшированным. Упрощай чанк оформления, чтобы там не было лишних тегов и условий. Вместо [[~[[+id]]]] используй [[+link]], например.
        Дмитрий Кондаков
        18 ноября 2014, 09:43
        0
        Все так и делаю) Просто меня смутила разница вывода тикетов и меню по времени. Ладно, буду думать чем еще можно вывести, спасибо.
          Василий Наумкин
          18 ноября 2014, 11:08
          0
          А разница между выводом 10 и 243 ресурсов тебя не смущает?

          Думай сколько угодно, меньше ресурсов от этого не станет.
            Дмитрий Кондаков
            18 ноября 2014, 13:07
            0
            Ну хотя да. Выведу статичный html
              Василий Наумкин
              18 ноября 2014, 13:12
              0
              А кэшированный вызов сниппета чем не устраивает?

              Работа с тикетами не чистит кэш сайта, так что кэш меню сбрасываться не должен. Статичный html на 243 записи это как-то совсем жестоко.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7