Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tabellen werden riesig #126

Closed
VIEWSION opened this issue Oct 10, 2024 · 8 comments
Closed

Tabellen werden riesig #126

VIEWSION opened this issue Oct 10, 2024 · 8 comments
Labels
duplicate This issue or pull request already exists question Further information is requested

Comments

@VIEWSION
Copy link

Hi,

ich hab das Problem dass die Tabellen ungewöhnlich groß werden. Das AddOn ist jetzt ca. 1 Jahr aktiv und allein die rex_pagestats_sessionstats hat schon fast 150MB. Kann das sein?

image

Danke!

@AndiLeni AndiLeni added the question Further information is requested label Oct 11, 2024
@AndiLeni
Copy link
Owner

Ja, das ist (leider) so.
Die sessionstats kann ich im Gegensatz zu den anderen Statistiken nicht direkt beim Besuch der Seite aggregieren sondern muss für jeden Aufruf einen Eintrag in der Tabelle anlegen.

@VIEWSION
Copy link
Author

Ok - Wie könnte man das optimieren? Wenn ich das über mehrere Jahre laufen lassen möchte, wird das so nicht mehr funktionieren. Man bräuchte wohl so eine Art Archivierung.... Ich hab mir ehrlich gesagt noch nicht genau angesehen wie das technisch funktioniert, aber ich kann mich da gerne mit einbringen.

@AndiLeni
Copy link
Owner

Man müsste es machen wie Matomo und zwei Datenhaltungen implementieren.
Einmal die Rohdaten wie jetzt, und einmal eine aggregierte Archivierung die beim Aufrufen des Addons oder per Cronjob getriggert wird.
Aber dann kann man auch gleich Matomo nutzen und aus Redaxo die Besuche per API in Matomo bringen.
Dieses Addon ist eher nur für kleine bis mittlere Webseiten ausgelegt.

Was du auch machen kannst, ist die Erfassung der Sessionstats deaktivieren. Dann hast du aber keine Infos mehr zu Besuchsdauer etc.

@VIEWSION
Copy link
Author

Hmm... Ok - ich check das mal mit Matomo. Was mir halt gefällt ist die Tatsache dass man mit deinem AddOn im Frontend nicht erkennen kann ob da ein Tracker läuft. Bei Matomo wird ja standardmäßig ein JS geladen... aber ich glaube da gibt es auch eine Alternative über PHP... muss ich mal testen. Danke!

@AndiLeni
Copy link
Owner

@VIEWSION schau mal hier, es gibt einen PHP Tracker für Matomo.
https://github.com/matomo-org/matomo-php-tracker/ und https://developer.matomo.org/api-reference/PHP-Matomo-Tracker.
Da kannst du bestimmt relativ einfach im Projekt-Addon damit einen Request absetzen wenn ein Seitenaufruf stattfindet.

@alxndr-w
Copy link
Collaborator

Folgende Optimierungen sind auf Datenbankebene möglich:

  1. Hash-Felder benötigen nicht varchar(255), sondern varchar(40) oder char
  2. Gleiches gilt für rex_pagestats_sessionstats.token
  3. rex_pagestats_bot alle varchar-Felder können kürzer
  4. rex_pagestats_data.type könnte enum/set sein
  5. rex_pagestats_sessionstats.visitduration und .pagecount könnten int(5) unsigned oder kleiner sein
  6. rex_pagestats_referer.referer könnte vermutlich kürzer sein varchar(255), die Information wird praktisch nicht benötigt wenn im Wesentlichen die Domain interessant ist.
  7. rex_pagestats_urlstatus.status könnte varchar(24) sein oder nur int(3) unsigend für den HTTP-Statuscode

@alxndr-w
Copy link
Collaborator

Das gesagt sind 150 für eine Datenbank doch ein Klacks. Da brauchst du mehr als 10 Jahre, bis die Datenbank an den 2 GB kratzt.

@alxndr-w
Copy link
Collaborator

Weiter geht's in #115

@alxndr-w alxndr-w closed this as not planned Won't fix, can't repro, duplicate, stale Nov 19, 2024
@alxndr-w alxndr-w added the duplicate This issue or pull request already exists label Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants