InnoDB nastavuje konkrétní typy zámků následovně.
-
SELECT ... FROM je konzistentní čtení, čtení snímku databáze a nastavení žádných zámků, pokud není úroveň izolace transakcí nastavena na SERIALIZABLE. Pro úroveň SERIALIZABLE hledání nastaví sdílené zámky dalšího klíče u záznamů indexu, na které narazí.
-
SELECT ... FROM ... LOCK IN SHARE MODE nastavuje sdílené zámky další klávesy na všech záznamech indexu, na které vyhledávání narazí.
-
U indexových záznamů, na které vyhledávání narazí, SELECT ... FROM ... FOR UPDATE blokuje jiným relacím provedení SELECT ... FROM ... LOCK IN SHARE MODE nebo čtení v určitých úrovních izolace transakcí. Konzistentní čtení bude ignorovat všechny zámky nastavené u záznamů, které existují v zobrazení pro čtení.
-
AKTUALIZACE ... KDE ... nastaví exkluzivní zámek další klávesy pro každý záznam, na který vyhledávání narazí.
-
DELETE FROM ... WHERE ... nastaví exkluzivní zámek další klávesy pro každý záznam, na který vyhledávání narazí.
-
INSERT nastaví exkluzivní zámek na vložený řádek. Tento zámek je zámek záznamu indexu, nikoli zámek dalšího klíče (to znamená, že neexistuje žádný zámek mezery) a nebrání dalším relacím ve vkládání do mezery před vloženým řádkem.
InnoDB má několik typů zámků na úrovni záznamu:
-
Zámek záznamu:Toto je zámek na indexovém záznamu.
-
Zámek mezery:Toto je zámek mezery mezi záznamy indexu nebo zámek mezery před prvním nebo za posledním záznamem indexu.
-
Zámek dalšího klíče:Jedná se o kombinaci zámku záznamu na záznamu indexu a zámku mezery na mezeru před záznamem indexu.
Zobrazit více:
Jak se vyhnout fantomovému problému pomocí zamykání pomocí další klávesy