Что такое VACUUM в PostgreSQL и какую проблему решает MVCC?

MVCC позволяет транзакциям читать подходящие версии строк, уменьшая конфликты чтения и записи. VACUUM освобождает место от версий, больше не нужных ни одной транзакции.

Короткий ответ

Что ответить на собеседовании

MVCC позволяет транзакциям читать подходящие версии строк, уменьшая конфликты чтения и записи. VACUUM освобождает место от версий, больше не нужных ни одной транзакции.

Подробный разбор

Ответ с пояснениями

MVCC позволяет транзакциям читать подходящие версии строк, уменьшая конфликты чтения и записи. VACUUM освобождает место от версий, больше не нужных ни одной транзакции.

После UPDATE или DELETE старая версия может ещё требоваться читателям. Обычный VACUUM делает освобождённое место повторно используемым, поддерживает карту видимости и защиту от переполнения идентификаторов транзакций.

Он обычно не уменьшает файл таблицы до минимального размера. VACUUM FULL переписывает таблицу и требует сильной блокировки. Долгие транзакции могут мешать удалению старых версий; autovacuum не стоит отключать без обоснованной альтернативы.

Источник: www.postgresql.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее