[php/mysql] statistieken database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo mede tweakers,

ik wil de statistieken gaan loggen van de bannerviews van gebruikers.
Nu zijn er een aantal dingen die ik wil kunnen opvragen.

- de totale statistieken van de afgelopen dagen (per land)
- de totale statistieken van de afgelopen 24 uur (per land, per uur) (deze is niet zo heel belangrijk, maar wel leuk)

- de statistieken van gebruikers per dag, per land

Het probleem zit het em ook nog in dat ik niet iedere hit wil tellen, bijvoorbeeld er moet minimaal 15 min tussen zitten.

Om dit laatste de kunnen controlleren, moet ik bij houden welk ip op welke tijd een view heeft gehad.

Dan krijg ik een tabel 'hits' waar alle views instaan van alle gebruikers (met uid,ip,land,datetime).

Omdat ik met de het huidige totaal aantal views van vandaag van een gebruiker moet werken. Lijkt het me om performace redenen het totaal aantal views van een gebruiker bij te houden (uid,datum,views)

Dus per view wordt er een hit aangemaakt en een view bij de gebruiker geteld. Voor later moet er misschien op land worden geselecteerd. Dus kan ik ook nog ip de tabel 'dagviews' ook een landcode bijvoegen (uid,datum,views,landcode).

Als ik dit dus heb gedaan en de intraday statistieken nog niet zo belangrijk zijn, kan ik de totale hits weglaten. NIET DUS, want ik moet bijhouden of ik er een view bij moet tellen.

Wat kan ik nu dus het beste doen? De verwachting is dat er zo'n 500.000 views per dag (in een later stadium) worden gegenereerd.

[Samenvatting]
ik heb de tabellen
views (uid,ip,land,datum)
viewsperdagpergebruiker (uid,land,datum,views)
viewstotaal (datum,aantal)

deze tabellen worder per view gewijzigd.

Waar ik nu ook nog aan zit te denken is, om records te verwijderen die ouder zijn de de minimale tussentijdse tijds duur. Alleen heb ik dan geen intraday meer.


Is dit "ontwerpje" goed genoeg, of zou het helemaal anders moeten. En gaat dis qua performance werken?

Acties:
  • 0 Henk 'm!

  • thomasfilius
  • Registratie: Januari 2001
  • Laatst online: 16-09 13:10

thomasfilius

zappaeske strapatsen

OI? waarschijnlijk ligt het aan mij, maar na je uitleg twee keer door te hebben gelezen blijft het voor mij een warboel.

Mijn 'visitor-tracking' systeem voor m'n websites ziet er zo uit:

Tables:
- visitors
- visitorHits
- visitorIpRanges

visitors > wordt elke unieke bezoeker geregistreerd, met ip etc.
visitorHits > wordt elk bezoek (of in jou geval view) geregistreerd
visitorIpRanges > lijst met alle ipranges met landcodes, providers, etc.

Deze opzet heb ik gekozen omdat ik merkte dat als je realtime landcodes etc gaat bepalen dit enorme performance verlies geeft. Dus vandaar dat ik alles gewoon 'blind' opsla en bij het bekijken van de statistieken pas ga filteren.

Een ipranges lijst kun je gewoon gratis van het internet afplukken.

Watch out where the huskies go an' don't you eat that yellow snow!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry, heb dit keer echt mijn best gedaan om het zo goed en uitgebreid mogelijkt te vertellen/vragen. Maar vind het lastig om iets uit te leggen waar ik zelf niet uit kom.

thomasfilius:
als ik het op jouw manier ga opslaan dan krijg ik de tabellen:
- viewsUniek
- viewsAantal
- ip2country

Maar ik heb niets aan "niet unieke" views, bij mij is dan een unieke view één view per 15 min. Dus valt de tabel viewsAantal al weg.

Er blijft dus alleen de tabel viewsUniek over. Hier komen alle views van de gebruikers te staan.

Maar ik wilt niet alleen statistieken berekenen. Van uit hits in worden hits out berekend. Dus heb de totalen nodig van de gebruikers en het globale totaal.

Iedere keer de totalen te berekenen vanuit een tabel met alle views erin is nogal zwaar. Daarom tabellen er lang met de gevens van gebruikers per dag en het totaal van de dag.

Alleen weet ik niet zo goed hoe ik dit op de meest snelste en zo minst zware manier te doen.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 16-09 09:38

Goodielover

Only The Best is Good Enough.

Ik denk toch dat je het beste je analyse los kan doen van je logging.
Ik kan door je taalgebruik niet altijd achterhalen wat je bedoelt, maar het bepalen welke totalen je wel en niet moet ophogen bij een nieuwe hit kan wel eens complex worden. Vandaar advies: leg elk bezoek gewoon apart vast.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Het bovenstaande advies in andere woorden: sla alle gegevens op die je nodig hebt op een manier waarop dat invoegen eenvoudig gaat. Kijk naar het schema wat gepost is. Als je daar alle gegevens in hebt zitten kun je daar alle mogelijke overzichten met die gegevens uit halen.