Archief - [PROG]SQL performantie van datumfuncties

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.

passero

Legacy Member
Ik zit met volgend probleem:
Voor een zelfgeschreven cms wil ik een stats module hebben. Die stats moeten verschillende overzichten geven waaronder per jaar, per maand, per dag, per uur,...
Vandaar dat ik twijfel tussen volgende structuur voor een entry:

log_entry(id,,ip,datum)
hier is het datumveld yyyy/mm/dd hh:mm:ss
als ik dan alles wil opvragen van bepaalde maand moet ik gebruik maken van datumfuncties. Dit zal wss een grote tol eisen qua performantie als je honderduizenden records hebt? niet?
Daarom dacht ik aan volgende:
log_entry(id,ip,jaar,maand,dag,uur,min)

hier is elk deel in een apart veld waardoor ik heel makkelijk een group by kan doen en ik vermoed qua performantie zeer snel zal zijn.

Maakt het nu qua performantie zoveel verschil uit of is het niet zo een ramp om alles in 1 veld te steken wat dus een gewoon datumveld is en werken met de date functies in sql.

fretn

Legacy Member
het beste wat je kan doen is eens zelf benchmarken en zien wat er snelst is :)

Valk

Legacy Member
Ik zou dit persoonlijk nooit op die manier doen zoals jij beschrijft. En zeker niet om performance redenen. Een datumveld wordt intern opgeslagen als 1 getal, die date functies in SQL doen gewoonweg bewerkingen op dat ene getal. Dus dat is altijd sneller dan 5 getallen op te slaan in 5 verschillende velden.

[BAT] Hydra

Legacy Member
Valk zei:
Ik zou dit persoonlijk nooit op die manier doen zoals jij beschrijft. En zeker niet om performance redenen. Een datumveld wordt intern opgeslagen als 1 getal, die date functies in SQL doen gewoonweg bewerkingen op dat ene getal. Dus dat is altijd sneller dan 5 getallen op te slaan in 5 verschillende velden.

2nd

Ik zou bij het uitvoeren van datum gerelateerde queries zo veel mogelijk de ingebouwde functionaliteiten van het dbms gebruiken hoor, die zijn op een zo efficiënt mogelijke manier ervoor geïmplementeerd!
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