Какой уровень изоляции установлен по умолчанию в PostgreSQL

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

Ответ

По умолчанию в PostgreSQL используется уровень изоляции READ COMMITTED. Это означает, что транзакция видит только те данные, которые были зафиксированы до начала её выполнения. Если другие транзакции изменяют данные и фиксируют их во время выполнения текущей транзакции, повторное чтение этих данных в рамках одной транзакции может вернуть новые значения.

Пример:

BEGIN;
-- Уровень изоляции READ COMMITTED (по умолчанию)
SELECT * FROM users WHERE id = 1;
-- Другая транзакция изменяет и коммитит данные
SELECT * FROM users WHERE id = 1; -- Может вернуть другие данные
COMMIT;