Sobes.tech
Middle

Jaká je existující klasifikace úrovní izolace?

sobes.tech AI

Odpověď od AI

Úrovně izolace v databázích určují, jak moc jsou transakce od sebe a od změn provedených jinými transakcemi izolovány. Předcházejí různým problémům s paralelním přístupem.

Klasifikace úrovní izolace (standard SQL):

  • READ UNCOMMITTED
    • Umožňuje čtení nezávazných změn (špinavé čtení / dirty read).
    • Problémy: špinavé čtení, nevratné čtení, přízrakové čtení.
  • READ COMMITTED
    • Umožňuje číst pouze potvrzené změny.
    • Zakazuje špinavé čtení.
    • Problémy: nevratné čtení, přízrakové čtení.
    • Výchozí nejčastěji používaná úroveň.
  • REPEATABLE READ
    • Zaručuje, že opakované čtení stejného souboru řádků v jedné transakci vrátí stejná data, i když je jiná transakce změní.
    • Zakazuje špinavé čtení a nevratné čtení.
    • Problém: přízrakové čtení (objevení nových řádků odpovídajících podmínce výběru).
  • SERIALIZABLE
    • Nejvyšší úroveň izolace.
    • Zaručuje úplnou absenci problémů s paralelním přístupem. Transakce jsou prováděny, jako by byly prováděny sekvenčně.
    • Zakazuje špinavé čtení, nevratné čtení a přízrakové čtení.
    • Může významně ovlivnit výkon.

Problémy paralelního přístupu:

Problém READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE
Špinavé čtení Ano Ne Ne Ne
Nevratné čtení Ano Ano Ne Ne
Přízrakové čtení Ano Ano Ano Ne

Volba úrovně izolace závisí na požadavcích aplikace a kompromisu mezi integritou dat a výkonem.