kullervo |
2006-01-16 10:36 |
Citat:
Originally posted by PRQ@Jan 12 2006, 23:29
Nu vet jag inget om hur din site ser ut under huven, men 130 queries/sekund för 600 samtidiga users är ganska mycket. Dock ska MySQL klara mer än så. Har du trimmat din my.cnf?
|
Trimmat och trimmat. Jag har sett till att inte någon buffert eller cache är så liten att det blir en flaskhals. I stort sett har jag tagit my-huge.cnf och minskat lite på buffrar och cachar. Jag har dock en väldigt hög query cache hitrate. Den ligger runt 98%. Det bror dels på hur sajten ser ut men också delvis på att jag ändrar så lite som möjigt i databasen. Jag brukar lagra timestamps då en viss cell senast blev uppdaterad och se till att inte uppdatera oftare än nödvändigt. Key efficiency ligger givetvis på 100%.
Det jag trimmat är SQL-koden som körs av sajten. I stort sätt alla tabeller fixed lenght. Använder heap-tabeller så mycket som möjligt. T.ex. för att hålla reda på sessioner, statistik och sökresultat. Statistiken från heap-tabellen dumpas sedan var 20:e minut till en MyISAM för permanent lagring. Alla konstiga SQL-frågor (t.ex. när det blir många relationer) är prestandatestade på en gammal Pentium2-maskin som kör en backup av den skarpa databasen. Dessutom är alla dessa frågor körda med EXPAIN för att se att jag inte missat något index.
MySQL Administrator har jag stor hjälp av. Med det programmet kan man se all möjlig statistik på ett översiktligt sätt. Dessutom står det kommenterat vilka värden som är friskt. Visst kan man plocka ut den statistiken med SQL-kod istället, men det är mer omständigt.
|