MyISAM har olika typer av lås. En SELECT
operation placerar ett LÄSSLÅS på bordet. Det kan finnas flera aktiva läslås vid varje given tidpunkt, så länge det inte finns några aktiva SKRIVSLÅS . Operationer som ändrar tabellen, t.ex. INSERT
, UPDATE
, DELETE
eller ALTER TABLE
placera ett skrivlås på bordet. Skrivlås kan endast placeras på ett bord när det inte finns några aktiva läslås; Om det finns aktiva läslås köar MyISAM skrivlåset för att aktiveras så snart alla aktiva läslås har upphört.
På samma sätt när det finns ett aktivt skrivlås, kommer ett försök att placera ett läslås på en tabell att köa låset (och den associerade frågan) tills skrivlåsen har upphört att gälla på tabellen.
I slutändan betyder allt detta att:
- Du kan ha valfritt antal aktiva läslås (även kallade delade lås)
- Du kan bara ha ett aktivt skrivlås (även kallat ett exklusivt lås)
För mer information se:http://dev.mysql. com/doc/refman/5.5/en/internal-locking.html