Avatar billede intenz Novice
30. april 2007 - 22:29 Der er 6 kommentarer og
1 løsning

Optimering: PHP eller MySQL date?

Hej

En server skal køre nedenstående kald ca. 1.500.000 gange pr. dag.

Jeg kunne godt tænke mig at vide, ud fra en rent optimerings-synspunkt. Hvilken af nedenstående muligheder er, alt andet lige, hurtigst/mindst belastende/mest optimal, og vigtist af alt, hvorfor?:

1) Brug PHP's date() og mktime(); funktioner og køre MySQL med noget i stil med (forskellige kompinationer af $time):
where time='$time'

2) Gøre det samme men kun med MySQL date/time funtioner:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html


Altså kort sagt, er der en fordel i at udregne datoen i PHP fremfor i MySQL eller omvendt?
Avatar billede jakobdo Ekspert
01. maj 2007 - 08:42 #1
Jeg har forsøgt med lidt kode her:

http://www.codebreaker.dk/exp/775949exp.php

Det viser dog ikke den store forskel. (og det er "kun" på 10000 opslag.
Avatar billede intenz Novice
01. maj 2007 - 17:34 #2
Testede dit script lokalt, på en fyldt database og får nogenlunde samme resultat.

Kan du se nogle programmerinsmæssige fordele ved at bruge den ene frem for den anden?
Avatar billede jakobdo Ekspert
01. maj 2007 - 17:53 #3
Det kommer jo meget an på hvad det er du skal lave.
Men jeg forsøger altid, at lave så "mange" ting som muligt direkte i mysql og så efter behandle i php.
Så dit "problem" ville jeg bruge NOW() eller mysql dato-funktioner til at løse.
Avatar billede intenz Novice
03. maj 2007 - 15:23 #4
Okay :)

Du må gerne lægge et svar
Avatar billede jakobdo Ekspert
03. maj 2007 - 15:28 #5
Svar!

PS: Men rent performance-mæssigt, så ved jeg ikke om det ene er hurtigere end det andet.
Avatar billede erikjacobsen Ekspert
03. maj 2007 - 15:30 #6
Det har ikke direkte noget med effektivitet at gøre, men vær opmærksom på at tiden på 2 forskellige servere, her webserveren med PHP og mysql-serveren, kan være lidt forskellige. (Og selv om det i dag måske er den samme maskine, er det ikke sikkert, at det er i fremtiden).

Skal du derfor bruge tiden til noget med blot nogenlunde præcision, bør du sørge for kun at aflæse tiden på den ene - enten med time() i PHP eller med now() i mysql - og ikke blande dem.
Avatar billede jakobdo Ekspert
04. maj 2007 - 18:44 #7
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester