Встречается на собеседованиях • сегодня
Как работает 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;
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы