Базы данных / SQL middle
MVCC в PostgreSQL — как работает?
Ответ
Каждая транзакция видит snapshot базы. Вместо изменений — новые версии строк с xmin/xmax. Старые версии чистит VACUUM.
Разбор: Суть MVCC: каждой транзакции выдаётся snapshot, видимость строк определяется их xmin/xmax относительно этого snapshot, а изменение порождает новую версию строки вместо правки на месте. Главная ошибка дистракторов — будто старые версии берутся из WAL или общей копии: на деле они физически лежат в той же таблице как dead tuples, и убирает их именно VACUUM.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.