Оптимизация вывода
Имеется сайт для кино, реализовано следующим образом
Кино (документ)
— Название сериала (категория тикета)
* серия 1 (тикет)
* серия 2 (тикет)
* серия 78 (тикет)
— Название сериала 2 (категория тикета)
* серия 5 (тикет)
* серия 7 (тикет)
* серия 98 (тикет)
и т.д.
Как оптимизировать вывод… Подробнее в тикете
Выводится список всех серий (не конкретного сериала)
Queries: 10
Queries time, s: 0.0871522
Parse Time, s 1.102596
С учётом что создано около 300-900 категорий тикетов и 3к серий добавлено (с учётом что планируется 100к страниц и больше, это слишком медленно)
Ну и на засыпку ещё TicketLatest выводит тоже что и pdoResources(выше)
Queries: 32
Queries time, s: 2.2738841
Parse Time, s 4.4113537
Содержание tpl.main.video
/moya_hotelka/serial_name.html
/moya_2hotelka/seria_name_blabla.html
Так же pdoSitemap тяжело справляется, а именно нехватает 32 мб. (мб это норма?)
UPD: Обновил debugparse и добавил Join — Илья Уткин
Кино (документ)
— Название сериала (категория тикета)
* серия 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 infoQueries: 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 infoQueries: 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 — Илья Уткин
Комментарии: 4
Используйте Join для получения данных о родителе
Содержание tpl.main.video
[[!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>
Как-то так, вроде
спасибо, немного стало быстрее
DebugParser info
Queries: 10
Queries time, s: 0.0871522
Parse Time, s 1.102596
DebugParser info
Queries: 10
Queries time, s: 0.0871522
Parse Time, s 1.102596
возможно ли ещё какая то оптимизация или текущие показатели считаются нормой?
Говорят, для больших сайтов нужно отключать в настройках системы кеширование карты псевдонимов — параметр cache_alias_map
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.