Archief - hoe worden views geteld ? (sql)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SideShow

Legacy Member
Hallo

Ik heb een blogsite(je), en zou daar graag per artikel het aantal views zetten.
Ik heb een mysql tabel die logt: datetime ip url referer enzovoort

Het spreekt voor zich dat hetzelfde IP adres dat 25 keer refresht per minuut, niet mag meetellen. Ik vraag me af hoe dit bvb werkt in vbulletin fora? Kan ik dat uberhaupt wel met sql uit mn database halen? Iets met tijdsintervallen controleren ofzo per IP adres ?

Curahee Q

Legacy Member
Wordt er op een forum rekening gehouden met het IP?

Je kan misschien een korte cookie bijhouden van 1 minuut op de gebruiker zijn computer om te zien in welke fora hij al heeft gekeken?

SideShow

Legacy Member
Ik weet het niet

Ik zit momenteel hier:

PHP:
select sum(atl)
from (
          SELECT count(distinct ip) as atl FROM hits
          where pagina like '/page.php?id=4'
          group by day(datum)
         ) 
t0

Dit geeft de som van de unieke views van alle dagen. Is natuurlijk nogal ruw geschat zo... :unsure:

Cyberkef

Legacy Member
SideShow zei:
Ik vraag me af hoe dit bvb werkt in vbulletin fora?

vBulletin verwerkt het via de sessions (ipv puur op IP), de gegevens worden uurlijks gecached (dus nooit geen onmiddelijke update) en uiteindelijk hardcoded in de db opgeteld bij de desbetreffende thread.

SideShow

Legacy Member
thanks
geen goesting om te beginnen met sessions nu

ik zal het houden bij mn sql scriptje, maar dan gegroepeerd per uur, zou toch een redelijk realistisch beeld moeten geven denk ik

AsinuS

Legacy Member
Gebruik Google Analytics, die maakt een sessie van 30 minuten aan en telt bezoekers in deze sessie maar 1x, ongeacht het aantal refeshes.

Grtz

SideShow

Legacy Member
dat doe ik nu toch ook al? buiten dan dat het is per uur :unsure:

Cycloon

Legacy Member
Zet gewoon een check constraint of een updateable view in uw database die er voor zorgt dat entries die binnen een uur hetzelfde ipadres hebben niet worden toegevoegd.

bealzebub

Legacy Member
De reden waarom SQL queries voor zo'n zaken niet goed zijn hebben te maken met workload. De queries die je vernoemt zijn zeer expensive. Voor een simpel siteje met een laag aantal bezoekers zal dat allemaal nogal meevallen, maar met populaire sites zal dat een performance killer zijn.

Vandaar dat vBulletin en phpBB en zowat alles waar views geteld worden met een session based oplossing gaan werken en de count fysiek in de database gaan bijhouden. Frameworks zoals Ruby on Rails en alle afgeleiden (Symphony, CakePHP etc) hebben ingebouwde functionaliteiten die zo'n counters min of meer gaan automatiseren.

Samengevat: voor hobbysite geen probleem, naar scalability toe een zeer groot probleem.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan