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

Что такое MVCC в PostgreSQL

MVCC (Multi-Version Concurrency Control) — это механизм управления параллельным доступом к данным в PostgreSQL, позволяющий избегать блокировок при чтении.

Как работает:

  • Каждая транзакция видит "снимок" (snapshot) данных на момент своего начала.
  • При изменении строки создается ее новая версия, а старая сохраняется для других транзакций.
  • Неиспользуемые версии очищаются автоматически (VACUUM).

Пример:

sql
-- Транзакция 1 (началась первой)
BEGIN;
SELECT * FROM users WHERE id = 1;  -- Видит версию X

-- Транзакция 2 (параллельно)
BEGIN;
UPDATE users SET name = 'Alice' WHERE id = 1;
COMMIT;

-- Транзакция 1 продолжает видеть старую версию X
SELECT * FROM users WHERE id = 1;  -- Данные не изменились
COMMIT;

Плюсы:

  • Чтение не блокирует запись и наоборот.
  • Высокая производительность при параллельной работе.

Минусы:

  • Возможность "раздувания" БД из-за хранения старых версий (решается VACUUM).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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