Statistieken met PHP door Vincent Driessen Natuurlijk wil je, als trotse webmaster van je site, weten hoeveel bezoekers je site trekt. Gratis statistieken programmaatjes zijn er genoeg te vinden op het internet, dat is het probleem niet, maar het nadeel ervan is dat je zo'n goor ikoontje ziet dat altijd net in de verkeerde kleur is, zodat het niet in de layout past!! De oplossing: schrijf zelf een statistieken programma. Het lijkt zo gedaan, maar dat kan tijdens het maken zwaar tegenvallen...
Ellende
Voor mijn werk heb ik ook zelf een statistieken programmaatje geschreven samen met een collega. Alles leuk uitgedacht van te voren, en lekker aan de slag. Al gauw waren we klaar met ons eerste overzichtje met bezoekersaantallen, hits en systeem-info, we hadden dit alles getest door op onze lokale Apache web-server een aantal hits te genereren. Cool, dachten we toen nog :), maar de problemen traden op toen we gingen uploaden. Wat we dus bedacht hadden, alle informatie opslaan in een MySQL database, gewoon voluit. Dus ook iedere keer de hele string voor de browserinfo (bijv. "Microsoft Internet Explorer 4"). Niet slim natuurlijk, wel makkelijk. Maar niet bij een site als de onze (http://www.vrijetijd.com/ - beetje reclame mag best), die gemiddeld zo'n 10.000 - 15.000 hits per dag krijgt. Daar kan zo'n MySQL servertje natuurlijk niet echt tegen, en al gauw lagen al onze zuster-sites, die op diezelfde server draaiden, twee volle dagen plat!! Andere aanpak dus... de aanpak die ik in dit artikel ga beschrijven...
OK, de aanpak...
Het is belangrijk dat je bedenkt welke aanpak je graag wilt gaan volgen. Je moet wederom kiezen tussen log-bestanden en databases. Ik persoonlijk kies liever voor de laatste, gewoon omdat die makkelijker is in het gebruik. Nadelen zijn er natuurlijk ook, zie vorige alinea. Hoewel... nadelen zijn er als je het niet goed doet - strings voluit opslaan voor iedere hit bijvoorbeeld - in combinatie met zo'n gigantisch aantal bezoekers. Zeg gemiddeld 12.500 hits per dag, verspreid over zo'n 12 uur ('s nachts komt er bijna niemand). Dat zijn zo'n dikke 1000 hits per uur, ofwel zo'n 18 hits per minuut. Het komt er dus op neer dat de MySQL server iedere 3,5 seconde een request krijgt. Volle strings zijn dan natuurlijk uitgesloten, daarmee is de database in twee dagen groter geworden dan alle inhoud van de site zelf!!
Bovendien trad daarbij een ander probleempje op - zodra je de stats wilt bekijken, stuur je één SQL request en rekent de data uit in PHP of meteen in MySQL zelf. Je moet dus al die hits gaan analyseren, wat op een snelle server al snel zo'n dikke 30 seconden in beslag neemt. Je moet dus minimaal 30 seconden op zo'n request wachten, en je snapt het al: je browser genereert een time-out: niks statistieken!
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Volgende »
|