FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Har en fråga om prestanda på min webbsida.
Den använder Linux/Apache/Php/mysql och fungerar utmärkt ända tills det kommer upp i många samtidiga användare (+200 inom ett par minuter) Jag har gått igenom mysql config (max_connections=300 mm), apaches config (MaxClients 255 mm) Kör på en Pentium 4 (3 Ghz) med 2 GB minne Jag har ju rätt många sql accesser men inget dramatiskt i "slow-loggen" Någon som har något tips på något jag bör fixa/undersöka ?? |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Har WN som tidsfördriv
|
Är databasen tillräkligt normaliserad?
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Ja det skulle jag vilja påstå. Säkert inte perfekt och jag gör onödigt många accesser (det är utvecklat utan max hänsyn taget till den volym det blivit). Men det finns inga tunga join eller dyl.
Har jobbat på att minska omläsningar i sql genom att använda mer sessionsvariabler och cachning men utan större resultatförbättring. |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Bara ett inlägg till!
|
Att du behöver ha max_connections=300 för MySQL tyder på att frågorna som utförs ofta blokeras. På min server har jag ungefär 500 online samtidigt totalt på några olika sajter. Det brukar vara ungefär en handfull mysql-anslutningar samtidigt.
Kör igång MySQL Administrator och kolla i statistiken. Där är värderna kommenterade så att du får vet om det är bra eller dåligt. Jag skulle gissa på att ditt problem är att du har många updates i en MyISAM-tabell. Medans man ändrar i en MyISAM-tabell är hela tabellen låst. En lösning på det problemet är att byta tabelltyp till InnoDB. Killen som har Sockerdricka.nu hade det problemet tidigare i år och fick väldigt bra resultat. Finns en tråd om det här på WN. |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Det låter rimligt.
Visste inte att hela tabellen blir låst. Det är mycket interaktivitet och databsen uppdateras flitigt. En liten sidofråga - trodde att limit i en select sats begränsade rader som hämtas. Men i explain får jag ut alla rader som matchar min "where sats". Är det någon skillnad i effektivitet att använda limit x kontra att själv "hämta" X rader (fetch) ?? *edit stavning |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Mycket flitig postare
|
Citat:
Använder du persistent connections? Använder du mysqli_prepare()? Kan vara något att titta på i så fall. |
|||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Mycket flitig postare
|
Ja jag använder persistent connections (fast db ligger i localhost verkar det ha positiv effekt).
Däremot använder jag inte mysqli_prepare. Kör inte php 5 ännu. Jag har lite hemläxa att göra - är medveten om det. Det är (positiva) problem när populariteten växer mer än man tänkt sig när man började "hacka"... ;-) Tanken var bara att höra om det finns något enkelt och snabbt att göra medan jag "läser på". InnoDB låter ju intressant... Någon annan som konverterat från myISAM och vill dela med sig av erfarenheten ? |
|||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Nykomling
|
Citat:
![]() Citat:
|
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Citat:
|
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Bara ett inlägg till!
|
Citat:
http://www.webmasternetwork.se/index.php?a...&hl=innodb&s=wn http://www.webmasternetwork.se/index.php?a...&hl=innodb&s=wn Edit: Tycker du ska kolla på den fina statistiken som MySQL själv samlar in och analysera den för att se vart flaskhalsarna sitter. Som sagt, MySQL Administrator underlättar för detta. |
|||
![]() |
![]() |
Svara |
|
|