MyISAM ma różne rodzaje zamków. SELECT
operacja powoduje umieszczenie BLOKADA ODCZYTU na stole. W danym momencie może być wiele aktywnych blokad odczytu, o ile nie ma aktywnych BLOKAD ZAPISU . Operacje modyfikujące tabelę, np. INSERT
, UPDATE
, DELETE
lub ALTER TABLE
umieść BLOKADĘ ZAPISU na stole. Blokadę zapisu można umieścić w tabeli tylko wtedy, gdy nie ma aktywnych blokad odczytu; Jeśli istnieją aktywne blokady odczytu, MyISAM kolejkuje blokadę zapisu do aktywacji, gdy tylko wszystkie aktywne blokady odczytu wygasną.
Podobnie, gdy istnieje aktywna blokada zapisu, próba umieszczenia blokady odczytu na tabeli spowoduje kolejkowanie blokady (i powiązanego zapytania) do czasu wygaśnięcia blokady zapisu na tabeli.
Ostatecznie to wszystko oznacza, że:
- Możesz mieć dowolną liczbę aktywnych blokad odczytu (zwanych również blokadami współdzielonymi)
- Możesz mieć tylko jedną aktywną blokadę zapisu (zwaną również blokadą wyłączną)
Aby uzyskać więcej informacji, zobacz:http://dev.mysql. com/doc/refman/5.5/en/internal-locking.html