Middle+
55
Read Committed деңгейінде екі транзакция қалай жұмыс істейді? Мысал келтіріңіз.
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Read Committed оқшаулау деңгейі транзакция басқа транзакциялармен бекітілген (committed) деректерді ғана көретінін кепілдік береді. Бұл "лас" деректерді оқу (dirty reads) алдын алады, бірақ қайталанбайтын оқуларды (non-repeatable reads) немесе фантомды оқуларды (phantom reads) қорғамайды.
Мысал:
- T1 транзакциясы деректерді оқуды бастайды.
- T2 транзакциясы деректерді өзгертеді және өзгерістерді бекітеді.
- Егер T1 сол деректерді қайта оқыса, ол T2 өзгерістерін көре алады.
Осылайша, Read Committed кезінде транзакция бекітілмеген өзгерістерді көрмейді, бірақ басқа транзакциялар жасаған және бекітілген өзгерістерді көре алады.
Python-да бұл мінез-құлық дерекқор драйверлерімен жұмыс істеген кезде байқалады, мысалы, PostgreSQL үшін psycopg2 драйверін пайдаланып, оқшаулау деңгейін орнату арқылы:
import psycopg2
conn = psycopg2.connect(...)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED)