Middle
Kāda ir esošā izolācijas līmeņu klasifikācija?
sobes.tech AI
Atbilde no AI
Datu bāzu izolācijas līmeņi nosaka, cik ļoti transakcijas ir izolētas viena no otras un no citiem transakcijās veiktajām izmaiņām. Tie novērš dažādas paralēlas piekļuves problēmas:
SQL standarta līmeņu klasifikācija:
- READ UNCOMMITTED
- ļauj lasīt neapstiprinātas izmaiņas (netīrs lasījums / dirty read):
- problēmas: netīrs lasījums, atkārtots lasījums, fantoma lasījums:
- READ COMMITTED
- ļauj lasīt tikai apstiprinātas izmaiņas:
- aizliedz netīru lasījumu:
- problēmas: atkārtots lasījums, fantoma lasījums:
- visbiežāk izmantotais līmenis:
- REPEATABLE READ
- garantē, ka atkārtots lasījums tajā pašā rindu kopā sniegs tās pašas datus, pat ja citas transakcijas tās maina:
- aizliedz netīru lasījumu un atkārtotu lasījumu:
- problēma: fantoma lasījums (jaunas rindas, kas atbilst atlases nosacījumam):
- SERIALIZABLE
- augstākais izolācijas līmenis:
- nodrošina pilnīgu paralēlas piekļuves problēmu novēršanu:
- transakcijas tiek izpildītas tā, it kā tās būtu izpildītas secīgi:
- aizliedz netīru lasījumu, atkārtotu lasījumu un fantoma lasījumu:
- var būt ievērojams ietekme uz veiktspēju:
Paralēlas piekļuves problēmas:
| Problēma | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE |
|---|---|---|---|---|
| Netīrs lasījums | Jā | Nē | Nē | Nē |
| Atkārtots lasījums | Jā | Jā | Nē | Nē |
| Fantoma lasījums | Jā | Jā | Jā | Nē |
Izolācijas līmeņa izvēle ir atkarīga no lietojumprogrammas prasībām un kompromisa starp datu integritāti un veiktspēju.