Встречается на собеседованиях • сегодня
Что такое версионирование записей в PostgreSQL
Версионирование записей в PostgreSQL (MVCC — Multi-Version Concurrency Control) — это механизм, позволяющий нескольким транзакциям работать с одними данными без блокировок. Каждая запись может иметь несколько версий, что обеспечивает изоляцию транзакций и высокую производительность.
Как работает:
- При изменении записи создается новая версия, а старая остается для других транзакций
- Каждая версия содержит
xmin(идентификатор создавшей транзакции) иxmax(идентификатор удалившей транзакции) - Видимость версий определяется на момент начала транзакции
Пример:
sql
-- Транзакция 1 (началась первой)
BEGIN;
SELECT * FROM users WHERE id = 1; -- Видит версию X
-- Транзакция 2 изменяет запись
BEGIN;
UPDATE users SET name = 'New' WHERE id = 1;
COMMIT;
-- Транзакция 1 продолжает видеть старую версию
SELECT * FROM users WHERE id = 1; -- Все еще версия X
COMMIT;Плюсы:
- Высокий параллелизм (чтение не блокирует запись)
- Отсутствие блокировок для чтения
- Поддержка изоляции транзакций на разных уровнях
Минусы:
- Накапливается "мусор" от старых версий (требует VACUUM)
- Может приводить к фантомному чтению на некоторых уровнях изоляции

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы