Встречается на собеседованиях • сегодня

Как работает Repeatable Read уровень изоляции транзакций в PostgreSQL

Repeatable Read в PostgreSQL гарантирует, что данные, прочитанные в транзакции, остаются неизменными до её завершения. Если другие транзакции изменяют эти данные, текущая транзакция продолжает видеть исходные значения (снимок данных на момент первого чтения).

Ключевые особенности:

  • Предотвращает "грязное" и "неповторяющееся" чтение
  • Не предотвращает фантомное чтение (PostgreSQL предотвращает его благодаря реализации MVCC)
  • Использует снимок данных (snapshot) на момент первого запроса

Пример:

sql
-- Транзакция 1
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM accounts WHERE user_id = 1; -- Видит баланс 100

-- Транзакция 2 (параллельно)
UPDATE accounts SET balance = 200 WHERE user_id = 1;
COMMIT;

-- Транзакция 1 продолжается
SELECT * FROM accounts WHERE user_id = 1; -- По-прежнему видит 100
COMMIT;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы