Optimierung der Datenbankabfragen von Shopsystemen

Man nehme einen xt:commerce Shop, fülle ihn mit Artikeln und lässt ihn (erfolgreich) laufen. Die Datenbank wächst, und schnell wird der Shop langsam.

Wie bekommt man ihn nun wieder schnell ? Ein neues Shopsystem ist natürlich eine feine Lösung aber nicht immer Praktikabel (zu teuer, fehlende Funktionen, import alter daten funktioniert nicht unbedingt, stillstand des shops). Der Ausgabecache hilft. bedingt.
Ein Artikel wird geändert, die änderung erst angezeigt wenn der Zeitraum für das Caching überschritten wurde. Fehlerhafter Preis eingetragen ? Kann mal passieren. nur ungünstig wenn dann jemand die Produktseite schon aufgerufen hat und die Seite gecacht wurde.

Der cache-Ordner wächst. immens. 1000 Dateien in einem Tag, Umfang 11 MB. Natürlich könnte man jetzt nach jeder änderung im Backend den cache löschen. Das liesse sich auch automatisieren. Lohnt es sich ?

Die Seitenladenzeiten verringern sich (mit Bildern, scripten, etc) um eine Sekunde mit aktiviertem Cache.. Das ist so viel das man es deutlich spürt. Der erste Seitenaufbau dauert trotzdem lange, aber je länger der cache existiert, desto grösser ist die chanche das ein Besucher nicht der erste ist der eine Seite aufruft.
Aus dieser Sicht heraus ist es also Irrsinn den Cache zu löschen. Zumindest den kompletten. Nun habe ich mit dem Caching von xtc noch nicht im Detail beschäftigt, aber es müsste möglich sein beim ändern eines Artikels, die gecachte Version davon, bzw alle Versionen davon, zu löschen.
Der Cache als ganzes bleibt erhalten, nur diese Seite dauert beim ersten laden eben einen Moment länger. Alle haben gewonnen.

Lohnt es sich anzufangen im Systemkern die SQL Abfragen zu optimieren ? Das Team von xtc:modified hat es auf seine art getan, die Datenbank wurde ummodelliert, mit Erfolg.

Reicht es dann nicht eventuell die (korrekten) Indizes in der Datenbank zu setzen ? Theoretisch schon. Es gibt angaben bis 40% geschwindigkeitsgewinn durch richtige Indizes in xt:Commerce Shops (lesende zugriffe), allerdings wer einmal die Diskussion im xtc:modified Forum verfolgt hat über die Einführung der Indizes, und vor allem welcher Indizes versteht sofort warum das alles andere als ein leichtes Unterfangen ist.

Zum Glück kann man alles testen, und die Indizes sind dabei das einfachste also fange ich damit an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.