 |
Bara ett inlägg till!
|
|
Reg.datum: Dec 2003
Inlägg: 1 519
|
|
Bara ett inlägg till!
Reg.datum: Dec 2003
Inlägg: 1 519
|
Jag har väldigt dålig koll på hur MySQL's replikering fungerar och eftersom MySQL är som dom är så har jag svårt att gissa hur det fungerar i MySQL.
Några anledningar att slavarna *borde* kunna gör ändringar effektivare än mastern:
* Slavarna kan göra många ändringar i en om samma transaktion (färre duttar på disk samt färre uppdateringar av index) => stor gain i prestanda.
* De gör uppdateringarna när den har tid över.
* Man behöver inte replikera all data till alla slavar.
* Loggning och annan data som man normalt inte behöver presenteras på webbsajten kan ofta gott ligga på endast mastern eller på endast en av slavarna.
Men visst, har du en snabb master och tröga slavar så kan uppdateringarna på slavarna bli flaskhalsen. Eftersom MySQL's replikering är asynkron kommer det resultera i stor fördröjning i replikeringen vilket iofs webbsajten skulle kunna vara designad för att klara av.
Föresten, nu när jag tänker efter så är väl MySQL's replikering semi-synkron? Dvs. att den anser att transaktionen är avslutat när minst två slavar ack:at?
Edit:
Man kan också dela upp alla SELECTS så att de skickas till olika slavar beroende på vilka tabeller de läser från. Då kan man plocka bort alla index för de tabeller som det inte select:as från => mindre arbete för slavarna vid ändringar av av data.
Edit2:
Sitter bara och spånar lite här. Listan kan säkert göras mycket längre.
|