openjverein / jverein

Open JVerein - Open Source Vereinsverwaltung
https://openjverein.github.io
GNU General Public License v3.0
42 stars 15 forks source link

Cache für Buchungen #269

Closed lenilsas closed 1 month ago

lenilsas commented 1 month ago

Ich habe Cache für einige Object eingerichtet. So werden deutlich weniger Querys ausgeführt was bei entfernten Datenbanken deutlich merklich sein sollte.

dippeal commented 1 month ago

Schöne Umsetzung! Ich habe mit 1051 Buchungen auf einer, im lokalen Netzwerk befindlichen, MySQL DB getestet. Reduzierung von ca. 5 Sekunden auf 2 Sekunden Ladezeit beim Anzeigen der Buchungsliste. Weiterhin haben sich die abgeschickten SQL queries deutlich reduziert.

LeoDJ commented 1 month ago

Wir haben gerade unsere Hibiscus und JVerein Datenbanken zu MySQL umgezogen. Beim debuggen, warum das Anzeigen der Buchungen nun über 10s braucht, bin ich über diesen PR gestolpert. (JVerein 2.8.21 macht ja für jede einzelne Buchung, die ein Mitgliedskonto oder Projektnamen zugeordnet ist nochmal jeweils ein Datenbank Request, vermutlich um den Namen zu holen (das ist schon etwas unelegant implementiert, tbh))

Beim Überfliegen des PRs hab ich nicht gesehen, dass "Projekt" auch gecached wird. Fehlt das noch oder wurde das absichtlich ausgelassen?

lenilsas commented 1 month ago

Es gibt noch einige was man cachen könnte. Hier muss man nur abwägen, ob das wirklich zu Verbesserungen führt. Es wird dadurch ja auch mehr Arbeitsspeicher belegt. Ich habe erstmal die aus meinen Augen wichtigsten caches gemacht, da ich keine Projekte verwende sind diese nicht dabei. Hast du schon das Nigthly Build mit dem Cache getestet? Dann freue ich mich über Rückmeldungen ob es sich damit verbessert.