Custom Products: Riesige Datenbank durch Tabelle

Hallo,

mein Kunde benutzt das Plugin Custom Products zur Konfigurtion eine Bogensehne. Insgesamt gibt es ca. 32 Abfragepunkte. Nun ist mir bei einer Datensicherung aufgefallen, dass die Datenbank bereits riesige Dimensionen erreicht hat, obwohl der Kunde jetzt nicht soooo die Masse verkauft. Insgesamt ist die Datenbank bereits bei über 1,4 GB und ich fürchte in einem Jahr ist es das dreifache.

Die ganzen Daten liegen in der s_plugin_custom_products_configuration_hash. Für was ist diese Tabelle genau da? Kann ich da nicht überflüssiges mal leeren? 

Beste Grüße,

kweb

Da das Product-Model von SW so etwas wie Custom Products nicht vorsieht, müssen die Parameter für die Konfigurationen gesondert gespeichert werden, eben in dieser Tabelle. Über einen Hash wird der Eintrag dann der “Warenkorbposition” zugeordnet. Da die Warenkörbe Session bezogen sind, die Hashwerte aber nicht, werden sie auch nicht gelöscht, wenn der Warenkorb verfällt. Das hat allerdings den Vorteil, dass man so wieder eine “Konfiguration” aufrufen kann.
Ich meine, es gäbe für Custom Products V2 einen Garbage-Collector, der gernau diese ungenutzen Werte wieder löscht - ggf. müsste der noch als CronJob eingerichtet werden?

Siehe http://community.shopware.com/Plugin-Custom-Products-v2_detail_1930.html “Gültigkeit der Konfigurationen”

Hallo kweb,

die Tabelle speichert alle Konfigurationen, die irgendein Kunde jemals getätigt hat.
Dabei führt jede Änderung zu einer neuen Konfiguration - das kann schnell die Datenbank füllen, das ist korrekt.
Das Ganze hat den Vorteil, den @sonic‍ schon korrekt genannt hat: Du kannst die Konfigurationen auch später nochmal aufrufen.

Ebenfalls korrekt von @sonic‍ benannt:
Uns ist natürlich bekannt, dass dadurch die Datenbank extrem volllaufen kann - entsprechend haben wir die Möglichkeit eingebaut die entsprechenden Tabelle in einem von dir gewählten Zeitraum wieder zu leeren.
Dadurch gehen natürlich auch alte Konfigurationen verloren, sodass du diesen Cronjob nicht täglich o.Ä. laufen lassen solltest.

Gruß,
Patrick  Shopware

Ja, dafür gibt es einen Cronjob. Der räumt die Tabelle auf. 

Hallo, danke schonmal für Eure Antworten. Ich habe das Plugin “Cron” aktiviert und auch bei den Cronjobs den CustomProducts Hash GarbageCollector aktiviert. Ich habe den Cronjob dann mal manuell angestoßen über /backend/cron.

Er lädt ca. 30 Sekunden, dann kommt nur eine Meldung "Processing CustomProducts Hash GarbageCollector " nichts weiter passiert - rufe ich die Einstellungen nochmal auf ist der Cronjob deaktiviert und das Ergebnis ist “false”.

Was tun?! =)

kweb

Naja der wird jetzt wohl länger als deine max_execution_time brauchen.

Am besten per SSH ausführen.

Hallo Moritz,

kannst du mir sagen wie, bzw mit welchem Befehl (SSH) ich den Cronjob ausführen kann? Ich habe 0 Erfahrung damit, habe mich aber gerade verbunden. Die Datenbank ist mitlerweile 1.7 GB groß, ich muss hier dringend was machen.

kweb

Hallo

Könnte man den Inhalt der Tabelle s_plugin_custom_produtcs_configuration_hash nicht auch einfach über einen SQL Befehl manuell löschen?

Ich würde den einfach hin und wieder so löschen wollen. Wäre mir persönlich lieber.

Für eine Hilfestellung wäre ich sehr dankbar.

viele Grüße

Ja, kann man auch über einen SQL Befehl manuell löschen. Wenn Du nicht direkt die ganze Tabelle löschen möchtest kannst Du mit der created_at Spalte Spielen und zum Beispiel nur die Einträge löschen die nicht aus diesem Monat sind.