Sobes.tech
Middle

Kokia yra esama izoliacijos lygių klasifikacija?

sobes.tech AI

Atsakymas iš AI

Duomenų bazių izoliacijos lygiai nustato, kiek transakcijos yra izoliuotos viena nuo kitos ir nuo kitų transakcijų atliktų pakeitimų. Jie užkerta kelią įvairioms paralelinio prieigos problemoms:

SQL standarto izoliacijos lygių klasifikacija:

  • READ UNCOMMITTED
    • leidžia skaityti nepatvirtintus pakeitimus (šiukšlinas skaitymas / dirty read):
    • problemos: šiukšlinas skaitymas, kartotinas skaitymas, vaiduoklių skaitymas:
  • READ COMMITTED
    • leidžia skaityti tik patvirtintus pakeitimus:
    • draudžia šiukšliną skaitymą:
    • problemos: kartotinas skaitymas, vaiduoklių skaitymas:
    • dažniausiai naudojamas lygis:
  • REPEATABLE READ
    • garantuoja, kad pakartotinai skaitant tą pačią eilučių grupę, gausite tas pačias duomenis, net jei kitos transakcijos jas keičia:
    • draudžia šiukšliną skaitymą ir kartotiną skaitymą:
    • problema: vaiduoklių skaitymas (naujos eilutės, atitinkančios pasirinkimo sąlygą):
  • SERIALIZABLE
    • aukščiausias izoliacijos lygis:
    • užtikrina visišką nepraleidžiamumą paraleliniam prieigai:
    • transakcijos vykdomos taip, tarsi jos būtų vykdomos nuosekliai:
    • draudžia šiukšliną skaitymą, kartotiną skaitymą ir vaiduoklių skaitymą:
    • gali turėti reikšmingą poveikį našumui:

Paralelios prieigos problemos:

Problema READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE
Šiukšlinas skaitymas Taip Ne Ne Ne
Kartotinas skaitymas Taip Taip Ne Ne
Vaiduoklių skaitymas Taip Taip Taip Ne

Pasirinkimas izoliacijos lygio priklauso nuo programos reikalavimų ir kompromiso tarp duomenų vientisumo ir našumo.