Какие знаешь уровни изоляций

«Какие знаешь уровни изоляций» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В SQL есть 4 уровня изоляции транзакций (по стандарту ANSI SQL):

  1. Read Uncommitted - самая слабая изоляция. Позволяет читать "грязные" данные (незакоммиченные изменения других транзакций). Может приводить к "грязному чтению".

  2. Read Committed - предотвращает грязное чтение, но допускает "неповторяющееся чтение" (другая транзакция может изменить данные между повторными чтениями).

  3. Repeatable Read - гарантирует, что при повторном чтении в рамках одной транзакции данные не изменятся. Но возможна "фантомное чтение" (появление новых строк).

  4. Serializable - самый строгий уровень. Полностью изолирует транзакции, как если бы они выполнялись последовательно.

Пример в SQL:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN TRANSACTION;
-- операции
COMMIT;