Junior — Middle
Можеш ли набројати различите нивое изолације трансакција у базама података и објаснити њихову разлику?
sobes.tech АИ
Одговор од АИ
U bazama podataka postoje nekoliko standardnih nivoa izolacije transakcija, koji određuju kako i kada promene koje je jedna transakcija napravila postaju vidljive drugim transakcijama. Glavni nivoi izolacije:
-
Read Uncommitted (Čitanje nepotvrđeno)
- Transakcija može videti promene drugih transakcija, čak i ako one još nisu potvrđene.
- Moguće su "prljave čitanja" (dirty reads).
-
Read Committed (Potvrđeno čitanje)
- Transakcija vidi samo one promene koje su potvrđene.
- Uklanja prljave čitanja, ali mogući su neponovljivi pregledi.
-
Repeatable Read (Ponovljivo čitanje)
- Garantuje da će podaci pročitani u transakciji ostati nepromenjeni pri ponovnom čitanju.
- Uklanja neponovljive čitanja, ali mogući su fantomski pregledi.
-
Serializable (Serijalizabilno)
- Najstroži nivo izolacije.
- Transakcije se izvršavaju kao da se izvršavaju sekvencijalno, jedna za drugom.
- Uklanja fantomske čitanja i obezbeđuje potpunu izolaciju.
Izbor nivoa izolacije utiče na performanse i integritet podataka: stroži nivoi obezbeđuju veću integritet, ali mogu smanjiti paralelizam i povećati blokade.