MyISAM har forskellige slags låse. En SELECT
handling placerer en LÆSELÅS på bordet. Der kan være flere aktive læselåse på et givet tidspunkt, så længe der ikke er nogen aktive SKRIVELÅSE . Operationer, der ændrer tabellen, f.eks. INSERT
, UPDATE
, DELETE
eller ALTER TABLE
placer en SKRIVELÅS på bordet. Skrivelås kan kun placeres på et bord, når der ikke er aktive læselåse; Hvis der er aktive læselåse, sætter MyISAM skrivelåsen i kø for at blive aktiveret, så snart alle aktive læselåse er udløbet.
Ligeledes, når der er en aktiv skrivelås, vil et forsøg på at placere en læselås på en tabel sætte låsen (og den tilknyttede forespørgsel) i kø, indtil skrivelåsene er udløbet på bordet.
I sidste ende betyder alt dette:
- Du kan have et hvilket som helst antal aktive læselåse (også kaldet delte låse)
- Du kan kun have én aktiv skrivelås (også kaldet en eksklusiv lås)
For mere information se:http://dev.mysql. com/doc/refman/5.5/en/internal-locking.html