Проверяет знание степеней видимости изменений между параллельными транзакциями.
PostgreSQL поддерживает три основных уровня изоляции: READ COMMITTED (по умолчанию) видит только коммитнутые до начала каждого оператора; REPEATABLE READ видит снимок данных на момент начала транзакции, предотвращая неповторяющееся чтение и фантомы; SERIALIZABLE обеспечивает полную сериализацию транзакций, как будто они выполняются последовательно, но требует больше блокировок и может приводить к сериализационным ошибкам.
READ COMMITTED:
Каждый SQL-оператор видит только те данные, которые были закомичены до его старта.
Возможны неповторяющееся чтение и фантомы.
REPEATABLE READ:
Транзакция работает со «снимком» данных на её старте.
Нет неповторяющегося чтения и фантомов, но возможны serialization anomalies.
SERIALIZABLE:
Гарантирует эквивалент последовательного выполнения.
Может приводить к ошибкам serialization_failure, требующим ретрая.
Настройка:
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;Выбор:
Высокая конкуренция и строгая корректность → SERIALIZABLE.
Баланс скорости и согласованности → REPEATABLE READ.
Общие задачи → READ COMMITTED.