Problem: Die Statistik/Profil Ansicht ist bei vielen registrierten Mitspielern extrem langsam

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

  • Hallo,


    Wie es in der Überschrift steht, bei Klick auf einen User, um in seinen Statistik/Profilbereich zu schauen hängt das komplette Script und der serverload geht massiv in die Höhe.


    Ich habe mir mal die mysql queries angeschaut, und anscheinend sammelt das Script für die Statistiken eines einzelnen Users in Echtzeit erstmal alle Tipps aller anderen User, was bei >750 Usern und entsprechenden Tipps, einfach eine Masse an Daten und Abrufen ist, und es wird wohl mit jedem Spiel schlimmer weil immer mehr Daten dazu kommen. Bei wenigen Mittippern wohl zu vernachlässigen, bei vielen wirds aber schlimm.


    Diese Querys werden wohl für jeden User und für jedes Spiel abgerufen (nur ein Beispiel), bei jedem Abruf eines Userprofils:

    Code
    1. Query SELECT * FROM wmtipp_tipps WHERE spiel = '40' AND usr = '648'


    Die function loadTipp() in der ./include/inc.functions.php wird wohl der Ursprung sein. PHP opcache und MySQL Caches sind aktiv, aber fangen das natürlich nicht ab.


    Vorschläge/Fragen:
    - Kann ich Userprofile generell abschalten, oder zumindest die Statistikgenerierung? Weil Worst Case wäre das ich das Tippspiel mit den nächsten Spielen abschalten muss weil einfach ein Klick auf ein Userprofil langt um den Server abzuschiessen. (Ich will nicht händisch überall aus den Sources die Links zu den Profiles rauslöschen.)
    - Gibt es eine Möglichkeit die Statistiken nicht in Echtzeit sondern zB. nach jedem Spiel einmalig für jeden Spieler zu generieren und in eine table zu speichern die dann mit einfachen SELECTS abgefragt werden kann wenn benötigt?
    - Kann man den Code generell schlanker und performanter machen?


    Ich hab aktuell mit dieser Situation ein echtes Problem. :(


    Grüße