contao / core

Contao 3 → see contao/contao for Contao 4
GNU Lesser General Public License v3.0
490 stars 213 forks source link

Caching der getPageDetail()-Ergebnisse #3577

Closed ghost closed 13 years ago

ghost commented 13 years ago

Die Funktion getPageDetail() in der Controller.php wird anscheinend von verschiedensten Modulen benutzt. Heute hatten wir einen ziemlich extremen Fall wo durch einen vollen Katalog die Extension DomainLink schlappe 2000 mal den Funktionsaufruf durchführte. Das machte dann auch gleich gut 1800 Datenbankabfragen (cached hier der Datenbanktreiber?). Mit Tristan zusammen haben wir das Verhalten von DomainLink angepasst, aber prinzipiell wäre es natürlich schöner, wenn hier ein Caching bereits in der Controller.php stattfinden würde.

Die Funktion getPageDetail() scheint gern verwendet zu werden und wahrscheinlich lassen sich hier noch einige Datenbankabfragen sparen.

--- Originally created by Thraile on October 24th, 2011, at 05:40pm (ID 3577)

ghost commented 13 years ago

getPageDetail generiert für die gleiche ID die gleichen Abfragen, was zu gleichen Querys führt und demzufolge durch den Contao DB-Driver gecacht wird.

--- Originally created by backbone on October 25th, 2011, at 01:40am

Toflar commented 13 years ago

Trotzdem. Es sind zwei Queries, die zwar gecached werden, ein paar if-Abfragen, etliche Zuweisungen von Variabeln, InsertTag-Stripping usw. Ich denke man könnte $objPage trotzdem cachen oder spricht was dagegen?

--- Originally created on October 25th, 2011, at 08:50am

andreasisaak commented 13 years ago

Bei 10 Abfragen merkt man das auch nicht. Aber in Kombination mit dem Catalog und mehreren tausend Einträgen oder anderen Extensions die auf die selbe Funktion zurückgreifen, wird das zu einem echten Problem.

Unseren Tests zufolge bringt der DB-Driver Cache in solchen Fällen keinen performancebringenden Vorteil.

--- Originally created on October 25th, 2011, at 08:55am

Toflar commented 13 years ago

Dann baut mal ein Caching ein, testet es und bringt hier den Patch und die Resultate :)

--- Originally created on October 25th, 2011, at 09:33am

leofeyer commented 13 years ago

Ich kümmere mich darum.

--- Originally created on October 25th, 2011, at 10:46am

leofeyer commented 13 years ago

Implementiert in 4b3d4be2f6acf3b5b5c8e3fcdb817b8c.

--- Originally created on October 25th, 2011, at 08:32pm

andreasisaak commented 13 years ago

**VIELEN, VIELEN DANK

![](** Mehr kann ich dazu garnicht sagen) :)

--- Originally created on October 25th, 2011, at 08:37pm

leofeyer commented 13 years ago

--- Originally completed on October 25th, 2011, at 08:32pm