sql >> Databáze >  >> RDS >> Mysql

inno db úrovně izolace a zamykání

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

Jak se vyhnout uváznutí



  1. Testování bezpečnostních zranitelností ve webových aplikacích:osvědčené postupy?

  2. Osvědčený postup:Import souboru mySQL do PHP; rozdělené dotazy

  3. group_concat a jak používat číslo řádku ve sqlite

  4. Mazání záznamů před určitým datem