[MySQL] Gegevens mbt de bezoeker opslaan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- -

- -

08/09/2006 17:09:00
Quote Anchor link
Hallo,

Ik wil om spem en ander gezeik tegen te gaan eigenlijk alle sporen van de bezoeker opslaan, dus ik dacht om elke pagina die hij of zei opent, in een tabel in de db te zetten, met datetime en ip, maar wordt de site hier niet erg sloom van? of kan hij wel met gemak allemaal records toevoegen aan de database?

groeten,
Jonathan
 
PHP hulp

PHP hulp

12/01/2025 16:03:55
 
PHP erik

PHP erik

08/09/2006 17:12:00
Quote Anchor link
Op zich blijft het tot ongeveer 50 miljoen records op een gemiddeld PC'tje wel snel. Hangt van een paar dingen af. MySQL is niet zo snel met INSERT (wel met SELECT), en zeker niet als er een INDEX op de column staat. Dus misschien ligt je limiet eerder op een miljoen voor goede snelheid. Hangt van je servers af, van je bezoekersaantal en van de dingen die je precies logt en de datatypes.
 
Ponzi

Ponzi

08/09/2006 17:13:00
Quote Anchor link
Ik denk dat je server dat gemakkelijk aankan zo één query meer. Maar waarom zou je ELKE pagina op laten vragen. Je DB gaat onnodig groot worden. Stel dat je 5000 bezoekers per dag krijgt? Ik vind het een beetje 'dom' om daar je DB mee vol te steken :s ?
 
PHP erik

PHP erik

08/09/2006 17:14:00
Quote Anchor link
Mee eens dat het absoluut niet intelligent is aangezien je webserver meestal al alles logt.
 
- -

- -

08/09/2006 17:14:00
Quote Anchor link
Ik dacht aan zoiets:
| user | pagina | ip |
| int(10) | int(10) | varchar(15) |
Wat is een index eigenlijk? gebruik ik zelf nooit...
Edit:

Ik verwacht niet meer dan 100 bezoekers per dag, en nadat ik heb meegemaakt dat ik ongeveer met de dood bedreigt ben, wil ik zoveel mogelijk loggen (nou, bedreigt valt wel mee, maar mensen wensen wel gewoon toe dat ik dood ben etc...)...
Gewijzigd op 01/01/1970 01:00:00 door - -
 
PHP erik

PHP erik

08/09/2006 17:19:00
Quote Anchor link
Een index moet je zien zoals in een boek. De database houdt iets bij waardoor hij daarin razendsnel kan zoeken. Als je een paar honder duizend records hebt scheelt dit al factor 1000 tot 1.000.000. Dus dat is erg erg handig. Zonder indexes kun je nooit een grote database maken eigenlijk, want dan ben je minuten bezig om je data op te vragen.

int(10) vind ik wat overdreven. Ik zou een 4-byte integer gebruiken.

IP zou ik als int opslaan aangezien dit veel minder bytes kost (dan moet je dus wel de puntjes effe er uithalen en er misschien wat nullen tussen zetten).

Elk karakter in een varchar is namelijk (minimaal) een byte. Maar, met 1 byte kun je integers van 0 tot 255 aanduiden. Met 2 bytes kun je al 255 * 255 (of was het 256 * 256?) getallen aanduiden. Dat is dus veel efficienter.
Gewijzigd op 01/01/1970 01:00:00 door PHP erik
 
Frank -

Frank -

08/09/2006 17:21:00
Quote Anchor link
Het uitvoeren van 1 INSERT-query heeft nauwelijks invloed op de snelheid van jouw website. Wanneer je echter deze berg gegevens weer gaat opvragen, dan zal dat zeker een grote invloed hebben, ga daar dus spaarzaam mee om.

index = inhoudsopgave. Hiermee kun je de snelheid van de database enorm verhogen, een factor 1000 is zo maar mogelijk. Dit ligt echter wel aan de manier waarop de data is opgeslagen, hoe complex het datamodel is, etc. etc. Het op een goede manier gebruiken van indexen, is niet eenvoudig. En doe je verkeerd, dan kun je zelfs de snelheid omlaag halen... Hoge school database beheer.

Binnen MySQL zijn de mogelijkheden echter nogal beperkt, per query kun je slechts 1 index gebruiken.

Zie verder http://nl.wikipedia.org/wiki/Index_%28database%29
 
- -

- -

08/09/2006 17:25:00
Quote Anchor link
Indexen is niet nodig, wnt de gegevens zijn alleen voor mij bestemd, en ik wil best eventjes wachten.

verder, scheelt het echt snelheis als je int(4) doet ipv int(10)?
 
Frank -

Frank -

08/09/2006 17:27:00
Quote Anchor link
Jonathan:
... en nadat ik heb meegemaakt dat ik ongeveer met de dood bedreigt ben, wil ik zoveel mogelijk loggen (nou, bedreigt valt wel mee, maar mensen wensen wel gewoon toe dat ik dood ben etc...)...
En daarom ga jij de database aanpassen? Ga je toch vooral niet druk maken om dit soort geblaat van een paar primaten. Af en toe moet je gewoon even een bord voor je hoofd zetten! Jij kunt er toch niets aan doen dat zij niet intelligenter zijn... Even een cpu-upgrade of wat extra geheugen er bij plaatsen zit er echt niet in! ;)

Zet een scheldwoorden-filter op je site en dit soort onzin komt niet eens meer in de database terecht. Probleem opgelost.
 
- -

- -

08/09/2006 17:30:00
Quote Anchor link
Maar moet ik dus niets loggen? Ik heb er bijvoorbeeld hele veel aan gehad dat ik het ip-adres van diegene had, want nu weet ik wel wie het gedaan heeft.

Edit:
En daarom ga jij de database aanpassen?

nee, ben bezig met v2.0, wordt alles aangepast, db dus sowieso.
Edit:
Jij kunt er toch niets aan doen dat zij niet intelligenter zijn...

Tja, eigenlijk is het gewoon jaloezie...
 
Frisbee

Frisbee

08/09/2006 17:34:00
Quote Anchor link
Dit is trouwens wel interessant als je van plan bent veel ip adressen op te gaan slaan.
 
- -

- -

08/09/2006 17:37:00
Quote Anchor link
ok, is handig ja!
 

08/09/2006 18:21:00
Quote Anchor link
kun je het msis niet beter loggen in txt's met datum,ip,bezoektijd BV end at elke dag een andere txct wordt gemaakt met de datum ofzo
 
Frank -

Frank -

08/09/2006 18:27:00
Quote Anchor link
jeroen:
kun je het msis niet beter loggen in txt's met datum,ip,bezoektijd BV end at elke dag een andere txct wordt gemaakt met de datum ofzo
Nee, dan kun je nauwelijks meer wat doen met de data. Een database is gemaakt om data op te slaan en toegankelijk te maken. Je moet er alleen wel rekening mee houden dat een database langzamer wordt zodra je data gaat toevoegen. Gelukkig kan een database wel een paar miljard records kwijt en loop je niet zo heel snel tegen problemen aan. Zeker niet gezien de eenvoud van de data die in dit topic wordt genoemd.

Dus, wil je de data gaan opslaan, gebruik dan een databbase. Wees alleen zuinig met het opvragen van ALLE records uit de database en gebruik de juiste indexen om de boel sneller te maken.
 
Arend a

Arend a

13/09/2006 22:47:00
Quote Anchor link
Ik heb het wel eens gedaan met een webserver, was best aan aardig experimentje. Dr zijn ook apache modules die het doen, maar ik zie het voordeel niet in ten opzichte van gewone logs bekijken?

Verder zijn spambots nauwelijks te onderscheiden van andere users, ze gebruiken de zelfde user-agent en headers om zulk soort trucs te omzeilen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.