Skip to main content

Що означає ізольованість (Isolation)?

Ізольованість (Isolation) - це властивість транзакцій, що гарантує: паралельні транзакції не бачать незавершених змін одна одної й не заважають виконанню одна одної. Кожна транзакція має відчувати себе "єдиною в системі", навіть якщо насправді їх десятки.

Що це означає на практиці

  • транзакція не бачить проміжних, "брудних" даних з інших транзакцій
  • паралельні операції не призводять до суперечливих результатів
  • підсумковий ефект має виглядати так, ніби транзакції виконувалися по черзі

Типові проблеми без Isolation

ПроблемаЩо відбувається
Dirty Readчитання даних транзакції, яка ще не зафіксована
Non-repeatable Readповторне читання того самого поля дає різні результати, бо його змінили паралельно
Phantom Readпри повторному запиті з'являється новий набір рядків, доданих іншою транзакцією

Isolation захищає саме від таких ситуацій - залежно від рівня ізоляції.

Рівні ізоляції (ідея, коротко)

У системах транзакцій є різні рівні - від швидших, але менш строгих, до максимальних, наприклад:

  • Read Committed
  • Repeatable Read
  • Serializable (найстроgіший)

Чим вищий рівень - тим менше паралельності, але більше гарантій цілісності.

В одному реченні

Isolation = кожна транзакція виконується так, ніби вона єдина, і не бачить незавершених змін інших.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.