← Alle Beiträge

Von 270 auf 192 Datenbankabfragen: wie wir eine Shopware-Produktseite schneller gemacht haben

· 4 Min. Lesezeit · Flashport

Eine Produktseite im BerryBase-Shop löste 270 Datenbankabfragen aus. Heute sind es 192, ohne dass Kunden einen Unterschied in der Darstellung sehen. Was dahintersteckt, und was Sie in Ihrem eigenen Shop prüfen können.

Zuerst messen

Bevor wir etwas ändern, zählen wir. Für jede wichtige Seite – Start, Kategorie, Produkt, Checkout – messen wir, wie viele Datenbankabfragen ein Aufruf auslöst und welche davon doppelt sind.

BerryBase ist ein Shopware-6-Shop mit über 20.000 Produkten und drei Ländershops für Deutschland, die Schweiz und Österreich. Die Produktseite lag bei 270 Abfragen pro Aufruf.

Dieselben Daten nur einmal laden

Viele Abfragen entstehen, weil an verschiedenen Stellen dieselben Daten geladen werden. Ein Cache, der nur für die Dauer eines Requests gilt, sorgt dafür, dass jede Information pro Seitenaufruf genau einmal aus der Datenbank kommt.

Arbeit überspringen, die nichts bewirkt

Shopware berechnet den Warenkorb neu, um Promotions anzuwenden. Ist keine Promotion aktiv, ist diese Berechnung reine Last. In diesem Fall überspringen wir sie.

Cache und Sessions raus aus der Datenbank

Redis übernimmt Cache und Sessions, damit sich die Datenbank um Daten kümmert und nicht um Zwischenspeicher. Dazu kommen OpenSearch für die Suche und Cloudflare vor dem Shop, das Inhalte ausliefert, bevor der Server gefragt wird.

Das Ergebnis

Die Produktseite braucht heute 192 statt 270 Abfragen. Keine der Änderungen ist exotisch. Langsame Shops haben meist dieselben wenigen Ursachen.

Checkliste für Ihren Shop

  • Wie viele Datenbankabfragen löst Ihre Produktseite aus?
  • Werden dieselben Daten pro Seitenaufruf mehrfach geladen?
  • Läuft Arbeit, die in Ihrem Shop nichts bewirkt – etwa Promotions-Berechnungen ohne aktive Promotion?
  • Liegen Cache und Sessions noch in der Datenbank?
  • Steht ein Cache wie Cloudflare vor dem Shop, und ist er richtig konfiguriert?