PostgreSQL принимает четыре стандартных названия, но READ UNCOMMITTED работает как READ COMMITTED, поэтому различных режимов три. MVCC хранит версии строк и определяет их видимость через snapshots.
Почему в PostgreSQL фактически три уровня изоляции и что такое MVCC?
PostgreSQL принимает четыре стандартных названия, но READ UNCOMMITTED работает как READ COMMITTED, поэтому различных режимов три. MVCC хранит версии строк и определяет их видимость через snapshots.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
PostgreSQL принимает четыре стандартных названия, но READ UNCOMMITTED работает как READ COMMITTED, поэтому различных режимов три. MVCC хранит версии строк и определяет их видимость через snapshots.
В READ COMMITTED каждый обычный SELECT получает snapshot на начало команды, поэтому последующие команды могут видеть новые commits. REPEATABLE READ сохраняет согласованный snapshot транзакции, а SERIALIZABLE дополнительно предотвращает несерилизуемые результаты через обнаружение конфликтов и возможный abort. MVCC снижает конфликт чтения и записи, но не отменяет блокировки и необходимость повторять транзакции после serialization failure.