Middle
Aká je existujúca klasifikácia úrovní izolácie?
sobes.tech AI
Odpoveď od AI
Úrovne izolácie v databázach určujú, do akej miery sú transakcie od seba a od zmien vykonaných inými transakciami izolované. Predchádzajú rôznym problémom s paralelným prístupom.
Klasifikácia úrovní izolácie (štandard SQL):
- READ UNCOMMITTED
- Umožňuje čítanie nezáväzných zmien (špinavé čítanie / dirty read).
- Problémy: špinavé čítanie, nevratné čítanie, prízrakové čítanie.
- READ COMMITTED
- Umožňuje čítať iba potvrdené zmeny.
- Zakazuje špinavé čítanie.
- Problémy: nevratné čítanie, prízrakové čítanie.
- Predvolená najčastejšie používaná úroveň.
- REPEATABLE READ
- Zaručuje, že opakované čítanie toho istého súboru riadkov v jednej transakcii vráti rovnaké údaje, aj keď ich iné transakcie menia.
- Zakazuje špinavé čítanie a nevratné čítanie.
- Problém: prízrakové čítanie (objavenie sa nových riadkov, ktoré vyhovujú podmienke výberu).
- SERIALIZABLE
- Najvyššia úroveň izolácie.
- Zaručuje úplnú absenciu problémov s paralelným prístupom. Transakcie sa vykonávajú, akoby boli vykonávané sekvenčne.
- Zakazuje špinavé čítanie, nevratné čítanie a prízrakové čítanie.
- Môže významne ovplyvniť výkon.
Problémy s paralelným prístupom:
| Problém | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE |
|---|---|---|---|---|
| Špinavé čítanie | Áno | Nie | Nie | Nie |
| Nevratné čítanie | Áno | Áno | Nie | Nie |
| Prízrakové čítanie | Áno | Áno | Áno | Nie |
Výber úrovne izolácie závisí od požiadaviek aplikácie a kompromisu medzi integritou dát a výkonom.