Sobes.tech
Middle+
55

Read Committed деңгейінде екі транзакция қалай жұмыс істейді? Мысал келтіріңіз.

Сұралған компаниялар
X5 techX5 tech

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)