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.