Beklager at jeg igen må gå lidt off-topic, men jeg føler at jeg bliver nød til at adskille fact og fiction, så at trådstarter ikke bliver vildledt og spilder sin tid.
Det er en absolut fuldstændig ligegyldig, irrelevant test
er det da bestemt ikke, hvis du havde lidt erfaringer med store MySQL databaser ville du vide at lige netop den teste er ligefrem proportional med specielt select kommandoen i MySQL.
diskio bruges normalt kun hvis du ikke har ram nok, mysql cacher i ram, har du ram nok giver den test netop den performance du leder efter.
lad os tage hvad folkene bag MySQL siger
"The time reported is elapsed time on the client end, not CPU time on the server end. It is advisable to execute BENCHMARK()
several times, and to interpret the result with regard to how heavily loaded the server machine is."
så det er bestemt relevant
Søren - hvis du virkelig havde erfaring med store database, så ville du også vide at disken er større end RAM-mængden (medmindre du kører på en server med terabytes af RAM).
Dit citat har intet med sagen at gøre. Det der er tale om er et Working Set
Working Set (WS) er den mængde data som DBen har brug for at arbejde med, for at kunne besvare queries. Det kan udtrykkes (som et estimat) som en procentdel af databasens samlede størrelse. Eksempelvis vil en append-only database der bruges til logning have et minimalt working set (kun nogle få rækker), mens en data mining DB der joiner på tværs af alle data vil have et WS på ca 100% af DBens størrelse.
Den benchmark-query der er tale om, har et WS på præcis 0 bytes. Den involverer _ingen_ data på disken, der er ingen FROM, der er ingen JOIN, der er ingen WHERE. Der er INTET der rent faktisk måler databasens hastighed.
Det man rent faktisk måler, er hvor hurtigt serveren kan loope over en dato-funktion, og det siger IKKE noget om hvor hurtigt databasen kan skaffe data fra disken, udtrække de værdier man leder efter, joine dem med evt. andre tabeller, filtrere på de kriterier man har valgt, og endelig sende tilbage til klienten. Intet!
Så den ikke-tekniske konklusion til trådstarter og andre der følger med;
Lad for guds skyld vær med at spilde tiden på at bruge den nævnte benchmark test. Den er intetsigende og giver ikke noget som helst brugbart. I stedet følg disse forslag:
- Brug tiden på at finde en virtuel server hvor der er god disk performance. Hvis der er god disk performance, er der også gode forudsætninger for at have en hurtig database.
- Få opsat cache eller få hjælp af en der kan opsætte det for dig. Det er det hele værd!
- Få optimeret din WordPress, Joomla, Drupal eller hvilket som helst system du bruger. Der er typisk mange ting at tage fat på, hvis man ved hvad det drejer sig om.
- Sørg for at få et skalerbart setup, så du fremadrettet kan håndtere endnu flere besøgende.