![]() |
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 ?? |
Är databasen tillräkligt normaliserad?
|
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. |
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. |
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 |
Citat:
Använder du persistent connections? Använder du mysqli_prepare()? Kan vara något att titta på i så fall. |
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 ? |
Citat:
Citat:
|
Citat:
|
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. |
Tack för hjälpen. Jag måste se till att uppgradera mysql för att kunna köra InnoDB (har 3.23.54 nu).
En liten undran är varför man inte alltid kör InnoDB - vad är nackdelen - jag har bara läst att det är fördelar... ?? |
Citat:
MyISAM är snabbare än InnoDB på en hel del. Hur mycket eller på vad jag jag ingen koll på. Är det inte så att MyISAM är MySQLs egna tabellformat medans InnoDB är adopterat på senare tid? |
Citat:
Från http://dev.mysql.com/doc/refman/4.1/en/inn...b-overview.html Citat:
Så Conth du bör ha InnoDB stöd i MySQL. Dock rekommenderar jag till att uppgradera till minst 4.1 eftersom det har skett en kraftig prestanda ökning mellan 3.23 -> 4.0 -> 4.1. |
Har uppgraderat till ny version av mySql och konverterat de tyngre tabellerna till InnoDB + att jag satt upp Innodb's minnesutnyttjande.
Viss skillnad ! (Obs underdrift... *L*) Tack för hjälpen! |
Har du någon uppfattning om det var uppgraderingen av MySQL eller bytet till InnoDB som gav mest skjut?
|
Jag är då novis i ämnet, men kan du inte skapa index för de tabeller som det söks i ofta? Men det kanske inte är där problemet ligger?
|
Citat:
Citat:
|
| Alla tider är GMT +2. Klockan är nu 08:45. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson