MyISAM má různé druhy zámků. A SELECT
operace umístí ZÁMEK ČTENÍ na stole. V daném okamžiku může být více aktivních zámků čtení, pokud nejsou aktivní žádné ZÁMKY ZÁPISU . Operace, které upravují tabulku, např. INSERT
, UPDATE
, DELETE
nebo ALTER TABLE
umístěte WRITE LOCK na stole. Zámek zápisu lze umístit na stůl pouze v případě, že nejsou aktivní žádné zámky pro čtení; Pokud existují aktivní zámky čtení, MyISAM zařadí zámek zápisu do fronty, aby se aktivoval, jakmile vyprší platnost všech aktivních zámků čtení.
Podobně, když je aktivní zámek zápisu, pokus o umístění zámku pro čtení na tabulku zařadí zámek (a související dotaz) do fronty, dokud v tabulce nevyprší platnost zámků zápisu.
Nakonec to vše znamená, že:
- Můžete mít libovolný počet aktivních zámků pro čtení (nazývaných také sdílené zámky)
- Můžete mít pouze jeden aktivní zámek zápisu (nazývaný také výhradní zámek)
Další informace najdete na:http://dev.mysql. com/doc/refman/5.5/en/internal-locking.html