Junior — Middle
Poți enumera diferitele niveluri de izolare a tranzacțiilor în bazele de date și să explici diferența dintre ele?
sobes.tech AI
Răspuns de la AI
În bazele de date există mai multe niveluri standard de izolare a tranzacțiilor, care determină cum și când modificările făcute de o tranzacție devin vizibile pentru alte tranzacții. Nivelurile principale de izolare:
-
Read Uncommitted (Citire neconfirmată)
- O tranzacție poate vedea modificările altor tranzacții, chiar dacă acestea nu au fost încă confirmate.
- Posibile "citiri murdare" (dirty reads).
-
Read Committed (Citire confirmată)
- Tranzacția vede doar modificările care au fost confirmate.
- Elimină citirile murdare, dar pot apărea citiri nerepetabile.
-
Repeatable Read (Citire repetabilă)
- Garantă că dacă datele au fost citite într-o tranzacție, nu se vor schimba la o citire ulterioară.
- Elimină citirile nerepetabile, dar pot apărea citiri fantomă.
-
Serializable (Serializabil)
- Cel mai strict nivel de izolare.
- Tranzacțiile sunt executate ca și cum s-ar executa secvențial, una după alta.
- Elimină citirile fantomă și asigură izolare completă.
Alegerea nivelului de izolare afectează performanța și integritatea datelor: nivelele mai stricte asigură o integritate mai mare, dar pot reduce paralelismul și pot crește blocajele.