Neu tbesucherarchiv Tabelle wird immer größer

neomxr

Aktives Mitglied
18. Januar 2013
48
3
Hallo,
wir haben eine Nachricht von unserem Provider bekommen, dass unser Shop scheinbar über mehrere Tage sehr hohe Besucheraktivität hatte und die Tabelle tbesucherarchiv aus der JTL Shop Datenbank scheinbar für Leistungseinbußen gesorgt hat.
Die Tabelle hat mittlerweile über 6,5 GiB und ist mit über 8Mi Einträgen gefüllt.
Ich habe über die Suche leider nichts aktuelles zu dem Thema gefunden.
Shop Version ist die: 5.3.3
MySQL: 10.11.13

Wie bekommen wir das in den Griff? Kann man die Tabelle einfach leeren?
Kann man für die Zukunft das Ganze so einstellen, dass die Tabelle automatisch nach einem gewissen Zeitraum geleert wird?

Danke.
 

NoOne

Sehr aktives Mitglied
16. März 2024
673
230
Die kannst du leeren. Daraus werden "nur" bestimmte Statistiken generiert. Kundenherkunft, Einstiegsseiten, sowas. Wenn der GarbageCollector aktiv ist (in den globalen Einstellungen), dann wird die Tabelle regelmäßig gesäubert. Alles, was länger als 180 Tage drin steht, wird rausgeworfen. Da kann sich aber bei Bot-Belagerungen trotzdem eine Menge ansammeln.
 

neomxr

Aktives Mitglied
18. Januar 2013
48
3
Danke für die Rückmeldung, der GarbageCollector ist aktiv. Macht es Sinn die Tabelle zu leeren oder soll ich einfach abwarten bis der Collector das übernimmt?
Kann leider nicht einschätzen wie lange die komplette Leerung der Tabelle dauern wird bei über 8Mio Einträgen.
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.648
2.700
Berlin
Firma
css-umsetzung
Es kann, je nach Server sein, dass der es bei der Menge nicht schafft die Einträge bis zu einem gewissem Datum zu löschen.
dann musst du das Monatsweise machen.

Aber wenn dir die Statistik egal ist, dann führe einfach ein truncate über php myadmin aus.
 

xadoX

Sehr aktives Mitglied
11. September 2012
664
70
In der "/includes/src/DB/Services/GcService.php" kann man einstellen, ab welchem Zeitraum das tBesucherArchiv geleert wird.
Kennt jemand eine Möglichkeit die Tabelle überhaupt nicht zu befüllen?
 

NoOne

Sehr aktives Mitglied
16. März 2024
673
230
In der "/includes/src/DB/Services/GcService.php" kann man einstellen, ab welchem Zeitraum das tBesucherArchiv geleert wird.
Kennt jemand eine Möglichkeit die Tabelle überhaupt nicht zu befüllen?
Man könnte in der /includes/src/Customer/Visitor.php die erste SQL Abfrage in der Funktion "archive" auskommentieren. Etwa Zeile 83 bis 92. Dann wird nichts mehr nach tbesucherarchiv verschoben, sondern nur noch nach 3 Stunden aus tbesucher gelöscht.
 
  • Gefällt mir
Reaktionen: xadoX

AMP-Agentur

Offizieller Service Partner
SPBanner
19. Juli 2011
444
78
Magdeburg
Kann man die Tabelle einfach so mit truncate leeren, ohne dass es zu Fehlern im Shop kommt? Bei truncate wird ja auch der Wert für auto_increment turückgesetzt.
 

AMP-Agentur

Offizieller Service Partner
SPBanner
19. Juli 2011
444
78
Magdeburg
Danke für die schnelle Antwort.
Ich hatte eben mal auf einem Testserver die Tabelle getestet. 2,2 Mio Einträge mit 1,2 GB.
Wenn man alle Datensätze, die älter als 14 Tage waren, gelöscht hatte, hatte die Tabelle immer noch 800 MB.
Vor allem nach dem Absetzen des DELETE‑Befehls hat der Prozess im Hintergrund ca. 3 Std. gebraucht. Solange war die Tabelle gesperrt.

Das Leeren der Tabelle mit truncate dauert hingegen nur wenige Sekunden, da hier die Tabelle gelöscht und sofort leer wieder angelegt wird.
 

Ähnliche Themen