Middle
Care este clasificarea existentă a nivelurilor de izolare?
sobes.tech AI
Răspuns de la AI
Nivelurile de izolare din bazele de date determină cât de izolate sunt tranzacțiile între ele și de modificările făcute de alte tranzacții. Ele previn diverse probleme de acces concurent.
Clasificarea nivelurilor de izolare (standard SQL):
- READ UNCOMMITTED
- Permite citirea modificărilor neconfirmate (citire murdară / dirty read).
- Probleme: citire murdară, citire nerepetabilă, citire fantomă.
- READ COMMITTED
- Permite citirea doar a modificărilor confirmate.
- Interzice citirea murdară.
- Probleme: citire nerepetabilă, citire fantomă.
- Nivelul cel mai frecvent utilizat implicit.
- REPEATABLE READ
- Garantează că citirea repetată a aceluiași set de rânduri într-o tranzacție va returna aceleași date, chiar dacă alte tranzacții le modifică.
- Interzice citirea murdară și citirea nerepetabilă.
- Problema: citire fantomă (apariția de rânduri noi care satisfac condiția de selecție).
- SERIALIZABLE
- Cel mai înalt nivel de izolare.
- Garantează absența totală a problemelor de acces concurent. Tranzacțiile sunt executate ca și cum ar fi efectuate secvențial.
- Interzice citirea murdară, citirea nerepetabilă și citirea fantomă.
- Poate avea un impact semnificativ asupra performanței.
Probleme de acces concurent:
| Problema | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE |
|---|---|---|---|---|
| Citire murdară | Da | Nu | Nu | Nu |
| Citire nerepetabilă | Da | Da | Nu | Nu |
| Citire fantomă | Da | Da | Da | Nu |
Alegerea nivelului de izolare depinde de cerințele aplicației și de compromisurile între integritatea datelor și performanță.