« Alle Artikel

PrestaShop-Datenbank aufräumen: So bleibt Ihr Onlineshop schnell

Ihre PrestaShop-Datenbank wächst jeden Tag, auch wenn Sie nichts verkaufen. Erfahren Sie, welche Tabellen am stärksten wachsen, was Sie gefahrlos löschen können und wie Sie dabei kein Risiko eingehen.

Ein PrestaShop-Shop sammelt unbemerkt eine Menge Daten. Jeder Besuch, jede Suche und jede nicht vorhandene Seite wird irgendwo gespeichert. Nach ein paar Jahren kann die Datenbank dadurch mehrere Gigabyte groß sein, obwohl Ihre Produkte und Bestellungen nur einen Bruchteil davon ausmachen.

Das ist nicht nur verschwendeter Speicherplatz. Große Tabellen machen Backups langsam, Updates riskanter und einige Seiten im Backoffice spürbar träger.

Welche Tabellen wachsen am schnellsten?

In den meisten Shops sitzen die größten Übeltäter an derselben Stelle:

  1. ps_connections, mit ps_connections_page und ps_connections_source: eine Zeile pro Besuch, auch von Bots.
  2. ps_guest: anonyme Besucher, die nie ein Konto angelegt haben.
  3. ps_statssearch: alle Suchbegriffe, die Besucher jemals eingegeben haben.
  4. ps_pagenotfound: ein Protokoll jeder 404-Seite.
  5. ps_mail: ein Verzeichnis aller E-Mails, die Ihr Shop verschickt hat.

Nach ein paar Monaten brauchen Sie keine dieser Daten mehr, damit Ihr Shop läuft. Ihre Bestellungen, Kunden und Produkte liegen in ganz anderen Tabellen.

Was können Sie gefahrlos löschen?

Eine gute Faustregel: Bewahren Sie Statistiken und Protokolle so lange auf, wie Sie sie wirklich nutzen, zum Beispiel 90 Tage, und löschen Sie den Rest. Achten Sie dabei auf zwei Dinge:

  1. Löschen Sie nur anonyme Gäste, niemals Gäste, die mit einem Kundenkonto verknüpft sind.
  2. Behalten Sie Gäste mit einem aktuellen Warenkorb, sonst verliert ein Besucher, der gerade etwas in den Warenkorb gelegt hat, seinen Inhalt.

Auch abgelaufene Preisregeln und den Cache der Facettensuche können Sie entfernen. Diesen Cache baut PrestaShop automatisch neu auf.

So gehen Sie sicher vor

1. Erstellen Sie zuerst ein Backup

Räumen Sie nie ohne Backup auf. Geht etwas schief, spielen Sie die Tabellen einfach wieder ein.

2. Prüfen Sie vorher, was gelöscht wird

Kontrollieren Sie pro Tabelle, wie viele Zeilen entfernt werden. Sehen Sie plötzlich eine unerwartet hohe Zahl, prüfen Sie zuerst Ihre Einstellungen.

3. Löschen Sie in kleinen Portionen

Ein einzelnes DELETE auf Millionen von Zeilen kann Ihren Shop minutenlang blockieren. Löschen Sie lieber in Portionen von einigen tausend Zeilen.

4. Bauen Sie den Suchindex neu auf

Ein frischer Suchindex sorgt dafür, dass die Suche in Ihrem Shop wieder zu Ihrem aktuellen Katalog passt.

5. Geben Sie den Speicherplatz frei

MySQL und MariaDB geben den Platz gelöschter Zeilen nicht von selbst an die Festplatte zurück. Sollen die Datenbankdateien wirklich kleiner werden, führen Sie danach OPTIMIZE TABLE für die größten Tabellen aus, zum Beispiel in phpMyAdmin.

Von Hand oder mit einem Modul?

Mit SQL-Abfragen in phpMyAdmin geht das alles, aber eine falsche WHERE-Bedingung und Ihre Daten sind weg. Außerdem müssen Sie es alle paar Monate wiederholen.

Deshalb haben wir Cloverfield Database Clean-up entwickelt. Das Modul erstellt mit einem Klick ein Backup, zeigt vorab, wie viele Zeilen pro Tabelle verschwinden, räumt in Portionen von 2000 Zeilen auf und baut den Suchindex neu auf. Backups spielen Sie im selben Modul wieder ein, und Multistore wird ebenfalls unterstützt.

Kurz zusammengefasst

  1. Protokolle und Statistiken lassen Ihre Datenbank unbemerkt wachsen.
  2. Behalten Sie nur, was Sie wirklich nutzen, zum Beispiel die letzten 90 Tage.
  3. Immer zuerst ein Backup, dann in kleinen Portionen aufräumen.
  4. Wiederholen Sie das ein paar Mal im Jahr, dann bleibt Ihr Shop schnell.