phpbar.de logo

Mailinglisten-Archive

[php] Statistikauswertung Spieleportal

[php] Statistikauswertung Spieleportal

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Jun 19 15:40:41 CEST 2007


Hallo Andreas,

Am Dienstag, 19. Juni 2007 schrieb Andreas Fay:
> ich sitze zur Zeit an der Programmierung eines Online-Spieleportals.
> Für die Auswertung der Statistiken stoße ich auf folgendes Problem:
>
> Der Kunde will für jeden Benutzer Statistiken ausgegeben haben
> (Ranglistenplatz usw). Das ist im Prinzip ja auch kein großes
> Problem, doch je mehr Benutzer es gibt desto höher wird die
> Frequentierung der Datenbank. Ich werde wohl die Statsausgabe nur
> einmal pro Tag aktualisieren und zwischenzeitlich cachen, allerdings
> stellt sich trotzdem die Frage, ob ich die Stats jeweils on the fly
> in der Datenbank aktualisiere oder zusammen mit dem Cache nur einmal
> pro Tag. Ich würde meinen einmal pro Tag würde die Datenbank etwas
> mehr schonen als on the fly. Dafür hätte ich dann zum
> Aktualisierungszeitpunkt extremen Aufwand, gerade auch wenn
> Ranglisten neu erstellen werden müssen. Die Rangliste würde ich aber
> immer zu einem bestimmten Zeitpuntk neu erstellen lassen, da es mir
> on the fly nach zu viel Aufwand ausschaut.
>
> Was meint ihr zu der Problematik? Wie würdet ihr vorgehen?

ehrlich gesagt, sind Deine Angaben etwas zu allgemein, um Dir konkret 
weiterhelfen zu können.

Allgemein betrachtet ist es so, daß Du vermeiden muß, aus einem Problem 
in ein anderes zu flüchten. Damit meine ich: Bei steigenden 
Nutzerzahlen mußt Du natürlich auf der einen Seite auf die entstehende 
Serverlast durch direkte Datenbankzugriffe achten, mußt aber auf der 
anderen Seite im Auge behalten, daß damit auch steigendende Datenmengen 
einhergehen, die irgendwann eben nicht mehr beherrschbar sind, vor 
allem nicht mehr zu einem einmal täglichen Aktualisierungszeitpunkt.

Es gilt also, auf der Basis der konkreten Anforderungen den goldenen 
Mittelweg zu finden, welcher schon bei der Datenbankkonzeption ansetzen 
muß. Dein Ziel muß es sein, so wenig Daten wie möglich mit so wenig 
Operationen wie möglich (nach) zu verarbeiten. Der erste Ansatzpunkt 
ist also Daten- und Aufwandsvermeidung. Danach tendiere ich dazu, im 
Prinzip immer live zu aktualisieren, aber durch Caching für einen 
bestimmten Zeitraum lesende Datenbankabfragen zu minimieren. Der 
nächste Schritt wäre dann schon, die Hardware aufzurüsten. :-)

Im Übrigen möchte ich mal einen Spieler sehen, der sich mit Statistiken 
zufrieden gibt, die nur einmal täglich aktualisiert werden. Der Ansatz 
ist rein aus dieser Sicht schon nicht praktikabel. :-)


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive