Core conceptsbeginner

MVCC

Multi-Version Concurrency Control lets readers and writers proceed concurrently by keeping row versions instead of blocking every read.

What this means

Postgres keeps old copies of a row instead of overwriting it in place. So a reader looking at the row and a writer changing it never wait for each other, the reader sees the version that was current when its query started, while the writer builds a new one alongside. That is what "multi-version" buys you: reads and writes stop fighting over the same row.

Why it matters operationally

It explains why PostgreSQL can serve consistent reads under write pressure and why vacuum is a first-class operational concern.

Where it lives in the source

src/backend/access/heap/heapam.c

← All glossary terms · GUC reference · Error catalog