TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Айти-Пингвин | Дата инженер

29 Sep 2025, 09:17

Telegram'da ochish Ulashish Shikoyat qilish

Изоляция

На этой недели добиваем серию постов про A C I D

🔤Isolation (изоляция) гарантирует, что одновременно выполняемые транзакции не будут мешать промежуточным состояниям друг друга.

По сути, пока транзакция выполняется, ее обновления (или промежуточные данные) остаются невидимыми для других текущих транзакций, создавая иллюзию того, что каждая транзакция выполняется последовательно, по одной за раз.

Без изоляции две или более транзакции могли бы считывать и записывать частичные или незафиксированные данные друг друга, что приводило бы к неверным или непоследовательным результатам.

Аномалии параллелизма

Чтобы понять, как работает изоляция, полезно рассмотреть, что может пойти не так без надлежащей изоляции. К распространённым аномалиям параллелизма относятся:

1. Dirty Read (грязное чтение)

• Транзакция A считывает данные, которые транзакция B изменила, но еще не зафиксировала.

• Если транзакция B затем откатывается, транзакция A в конечном итоге содержит недействительное или «грязное» значение, которое на самом деле никогда не существовало в зафиксированном состоянии.

2. Non-Repeatable Read (неповторяемое чтение)

• Транзакция A считывает одни и те же строки несколько раз во время своего выполнения, но видит разные данные, поскольку другая транзакция обновила или удалила эти строки между чтениями A.

3. Phantom Read (фантомное чтение)

• Транзакция A выполняет запрос, возвращающий набор строк. Другая транзакция вставляет, обновляет или удаляет строки, соответствующие условиям запроса A.

• Если A повторно выполнит тот же запрос, он увидит другой набор строк («фантомов»).

Уровни изоляции

Базы данных обычно позволяют выбрать уровень изоляции , который обеспечивает баланс между корректностью данных и производительностью.

Более высокие уровни изоляции обеспечивают более высокую согласованность данных, но могут снизить производительность системы за счет увеличения времени ожидания транзакций.

Давайте рассмотрим четыре распространенных уровня изоляции:

1. Read Uncommitted

• Позволяет выполнять «грязное» чтение; транзакции могут видеть незафиксированные изменения.

• Используется редко, так как может привести к серьезным аномалиям.

2. Read Committed

• Транзакция видит только те данные, которые были зафиксированы на момент чтения.

• Предотвращает «грязное» чтение, но неповторяющиеся чтения и фантомные чтения все еще могут возникать.


3. Repeatable Read

• Гарантирует, что при многократном чтении одних и тех же строк в рамках транзакции вы получите одни и те же значения.

• Предотвращает грязное чтение и неповторяющееся чтение, но фантомное чтение все равно может происходить (в зависимости от ядра базы данных).


4. Serializable

• Самый высокий уровень изоляции, при котором все транзакции происходят последовательно, по одной за раз.

• Предотвращает грязное чтение, неповторяющееся чтение и фантомное чтение.

• Самый затратный с точки зрения производительности и параллелизма вариант, поскольку может потребовать больше блокировок или проверок конфликтов.

Как базы данных обеспечивают изоляцию

1. Блокировка
• Пессимистический контроль параллелизма

- Строки или таблицы блокируются, так что никакая другая транзакция не сможет прочитать или записать их, пока блокировка не будет снята.
- Может привести к блокировке или взаимоблокировке, если несколько транзакций конкурируют за одни и те же блокировки.

2. MVCC (управление многоверсионным параллелизмом)

• Оптимистическое управление параллелизмом

- Вместо блокировки чтения база данных хранит несколько версий строки.
- Читатели видят согласованный снимок данных, тогда как писатели создают новую версию строки при обновлении.
- Такой подход снижает количество конфликтов блокировок, но требует тщательного управления версиями строк и очистки.

3. Изоляция моментального снимка

• Форма MVCC, при которой каждая транзакция видит данные такими, какими они были в начале (или в определенной точке) транзакции.
• Предотвращает неповторяющиеся и «грязные» чтения. Фантомные чтения могут возникать, если уровень изоляции не является полностью сериализуемым.

1.9k 1 27 12 30
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot