Оптимизация вывода

Имеется сайт для кино, реализовано следующим образом
Кино (документ)
— Название сериала (категория тикета)
* серия 1 (тикет)
* серия 2 (тикет)
* серия 78 (тикет)
— Название сериала 2 (категория тикета)
* серия 5 (тикет)
* серия 7 (тикет)
* серия 98 (тикет)
и т.д.

Как оптимизировать вывод… Подробнее в тикете

Выводится список всех серий (не конкретного сериала)
[[!pdoPage?	
&element=`pdoResources` 
&select=`modResource.*,Parent.pagetitle as parent_pagetitle,Parent.uri as parent_uri`
&innerJoin=`{"Parent":{"class":"modResource","on":"modResource.parent = Parent.id"}}`
&parents=`2` 
&fastMode=`1` 
&limit=`25` 
&cache=`1` 
&scheme=`abs` 
&showHidden=`0` 
&hideContainers=`1` 
&tpl=`tpl.main.video` ]]
DebugParser info
Queries: 10
Queries time, s: 0.0871522
Parse Time, s 1.102596

С учётом что создано около 300-900 категорий тикетов и 3к серий добавлено (с учётом что планируется 100к страниц и больше, это слишком медленно)

Ну и на засыпку ещё TicketLatest выводит тоже что и pdoResources(выше)
[[!pdoPage?
&element=`TicketLatest`
&parents=`2`
&fastMode=`1`
&limit=`25`
&scheme=`abs`
&showHidden=`0`
&action=`tickets`
&tpl=`tpl.main.video`]]
DebugParser info
Queries: 32
Queries time, s: 2.2738841
Parse Time, s 4.4113537

Содержание tpl.main.video
[[+idx]]
<img src="[[+introtext]]"/>
<a href="/[[+uri]]">[[+pagetitle]]</a>
<a href="/[[+parent_uri]]">[[+parent_pagetitle]]</a>
URL кастомный т.е. (заморожены в ручную, не конфигурировал в категории тикета)
/moya_hotelka/serial_name.html
/moya_2hotelka/seria_name_blabla.html

Так же pdoSitemap тяжело справляется, а именно нехватает 32 мб. (мб это норма?)
[[pdoSitemap? &prepareTVs=`0`]]
PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 32 bytes) in /var/www/kino/www/core/components/pdotools/model/pdotools/pdofetch.class.php on line 93
Хотелось бы услышать советы по этому поводу, может стоит отказаться от тикетов или же?

UPD: Обновил debugparse и добавил Join — Илья Уткин
Spam
20 апреля 2015, 10:45
modx.pro
1 188
0

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

Илья Уткин
20 апреля 2015, 14:26
+1
Используйте Join для получения данных о родителе
[[!pdoPage?	
&element=`pdoResources` 
&select=`modResource.*,Parent.pagetitle as parent_pagetitle,Parent.uri as parent_uri`
&innerJoin=`{"Parent":{"class":"modResource","on":"modResource.parent = Parent.id"}}`
&parents=`2` 
&fastMode=`1` 
&limit=`25` 
&cache=`1` 
&scheme=`abs` 
&showHidden=`0` 
&hideContainers=`1` 
&tpl=`tpl.main.video` ]]

Содержание tpl.main.video
[[+idx]]
<img src="[[+introtext]]"/>
<a href="/[[+uri]]">[[+pagetitle]]</a>
<a href="/[[+parent_uri]]">[[+parent_pagetitle]]</a>
Как-то так, вроде
    Spam
    20 апреля 2015, 14:35
    0
    спасибо, немного стало быстрее
    DebugParser info
    Queries: 10
    Queries time, s: 0.0871522
    Parse Time, s 1.102596
      Spam
      21 апреля 2015, 08:11
      0
      возможно ли ещё какая то оптимизация или текущие показатели считаются нормой?
        Илья Уткин
        21 апреля 2015, 11:30
        1
        0
        Говорят, для больших сайтов нужно отключать в настройках системы кеширование карты псевдонимов — параметр cache_alias_map
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4