pdoTools и большое количество ресурсов
Столкнулся с несколькими проблемами при увеличении количества ресурсов(class_key=Ticket) до нескольких десятков тысяч.
Имею следующую структуру:
около 20 разделов(обычный ресурс), в каждом из них 10-30 подразделов(раздел с тикетами), и в этих подразделах в сумме примерно 50 000 тикетов. Вывод меню этих разделов и подразделов через pdoMenu занимает 2-3 секунды. При том что вывод всех этих тикетов с пагинацией происходит за секунду максимум. Вопрос, это нормально? Если нормально то как можно ускорить? Сайт на modxcloud, аккаунт для разработчиков.
Основное время в логе занимает «2.2643330: End template tree»
И почему при использовании &select в pdoMenu все меню выводится в один уровень? Буду рад любой информации)
upd: По поводу select разобрался, не включил в выборку parent
Лог выборки:
Имею следующую структуру:
около 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
Комментарии: 7
Вывод меню этих разделов и подразделов через pdoMenu занимает 2-3 секундыА ты параметр &level какой указываешь? По умолчанию он равен 10, то есть туда попадут все 50000 тикетов, хоть и не отобразятся, потому что скрыты для показа в меню (по умолчанию).
Подбери верный &level (2-3) и будет быстро. При пагинации количество ресурсов ограничивается сразу.
&level я подобрал, 2 стоит. Сама выборка верная, ничего лишнего не берется
Ну, у тебя выбирается 243 ресурса за раз — так что 2-3 секунды это нормально.
Вызывай сниппет кэшированным. Упрощай чанк оформления, чтобы там не было лишних тегов и условий. Вместо [[~[[+id]]]] используй [[+link]], например.
Вызывай сниппет кэшированным. Упрощай чанк оформления, чтобы там не было лишних тегов и условий. Вместо [[~[[+id]]]] используй [[+link]], например.
Все так и делаю) Просто меня смутила разница вывода тикетов и меню по времени. Ладно, буду думать чем еще можно вывести, спасибо.
А разница между выводом 10 и 243 ресурсов тебя не смущает?
Думай сколько угодно, меньше ресурсов от этого не станет.
Думай сколько угодно, меньше ресурсов от этого не станет.
Ну хотя да. Выведу статичный html
А кэшированный вызов сниппета чем не устраивает?
Работа с тикетами не чистит кэш сайта, так что кэш меню сбрасываться не должен. Статичный html на 243 записи это как-то совсем жестоко.
Работа с тикетами не чистит кэш сайта, так что кэш меню сбрасываться не должен. Статичный html на 243 записи это как-то совсем жестоко.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.