Onkelborg |
2008-01-01 19:33 |
Nja, det tror jag inte på.. Alltså: Vad man vill minimera är att man plockar ett värde från databasen till webbservern, låter sedan webbservern skicka tillbaka det värdet för att plocka ytterligare ett värde. Dvs. få ner _antalet_ anrop. Men..
I det här fallet tvingar man databasen att jobba i 10 sekunder med någonting under ett anrop istället för 1 sekund under två anrop. Vad är bäst för prestandan?
Vidare, du vill aldrig göra några väldigt beräkningsintensiva saker i databasen om du likaväl kan göra beräkningarna på någon annan server (troligtvis webbservern) om du har några som helst planer på att skala någon gång i framtiden. Dock, finns undantag; om det är stora mängder data som det ska beräknas på så måste man ta hänsyn till att det är stora mängder data som ska transporteras, beräknas på något sätt, och sedan kastas. Det är också dyrt.
Anledningen till att man inte vill belasta databasen så mycket är att när man väl vill skala ut så är det väldigt enkelt att slänga dit en till webbserver; båda jobbar fortfarande mot samma databas. Det enda man måste fixa är sessions-hanteringen då.
Om vi å andra sidan har alla stora beräkningar i databasen så att den tar stryk först så är det en till databasserver vi behöver, och då börjar allting bli problematiskt..
|