Open iceman-fx opened 7 months ago
@iceman-fx Kannst du mit dem debug addon testen, wie lange die datenbank abfragen dauern wenn die seiten aufgerufen werden?
Sagt Dir dies etwas:
Ja, danke! Wie viele Tabellenzeilen hat denn rex_pagestats_visits_per_url bei dir?
32 241 (~9 MB)
Mhmm, ich habe gerade bei meiner Seite nachgesehen. Die hat dort knapp 25.000 Einträge, benötigt für die datenbankabfrage aber nur einen Bruchteil der Zeit die bei dir benötigt wird.
Eventuell liegt das Problem eher an der Verbindung zu deiner Datenbank. Ansonsten kann ich mir das Verhalten auf die schnelle nicht erklären ohne tiefere Analyse.
Andere Installationen auf dem gleichen Server, aber mit wesentlich weniger Daten, laden ruckzuck. Nur bei diesen massiven Daten braucht es lange.
Wo finde ich denn im Code die Stellen, an denen die Menge ausgelesen wird? Dann könnte ich es mal auf 20 begrenzen und schauen, ob es dann schneller lädt.
Das passiert einmal hier: https://github.com/AndiLeni/statistics/blob/cbb25d956b686090dbca9cd508109eb6b890f6f4/lib/Pages.php#L46 in der Funktion und hier. https://github.com/AndiLeni/statistics/blob/cbb25d956b686090dbca9cd508109eb6b890f6f4/lib/Pages.php#L105
Wobei vermutlich der erste Link relevant sein dürfte für dich.
Moin. Für was wird eigentlich die Tabelle rex_pagestats_sessionstats genutzt?
Diese ist bei mir innerhalb von 8 Monaten bereits auf 160 MB angestiegen und scheint den Aufruf teilweise mit zu bremsen.
@iceman-fx die Tabelle pagestats_sessionstats wird genutzt um die "letzte besuchte Seite", "Anzahl besuchter Seiten" und "Besuchsdauer" pro Sitzung des Besuchers zu erfassen.
Also schon sehr wichtig.
Habe jetzt erst einmal alle Daten die älter sind als 3 Monate aus der DB gelöscht, damit man wieder ins Addon rein kommt. Vorher gab es einen Abbruch, weil weniger als 270MB memory_limit verfügbar ist und damit die immensen Daten nicht ausgelesen werden können.
Hierzu aus #126
Folgende Optimierungen sind auf Datenbankebene möglich:
Hi, aktuell braucht der Aufruf der Statistiken im BE (Statistiken oder Seitenaufrufe) bei Webseiten mit vielen Besucher sehr sehr lange (> 15sek.).
Grund liegt wahrscheinlich an den massigen Einträgen, welche in den Tabellen immer komplett geladen werden. Bsp: ~1500 Einträge bei den Seitenaufrufen ~90000 Einträge bei den Statistiken > Ausstiegsseiten Und das nur bei Ansicht der letzten 30 Tage.
Wäre es daher nicht sinnvoller, wirklich nur die Anzahl der Daten zu laden, welche auch angezeigt werden, also z.B. 20 Stk. ? Die anderen kann man dann ja per Ajax oder URL-Aufruf (nach)laden.
Klar ist es aktuell bequem, die Tabelle so schnell neu sortieren und durchschalten zu können (es ist ja alles schon geladen). Aber bis dahin dauert es gefühlt eine Ewigkeit - erst recht, wenn man dann noch bei den Seitenaufrufe einzelnen URLs entfernen möchten.