MVCC (Multi-Version Concurrency Control) is how PostgreSQL handles concurrent access — instead of locking rows for reads, it keeps multiple versions of rows, so each transaction sees a consistent snapshot of the data. The key benefit: readers don't block writers, and writers don't block readers, enabling high concurrency.
The core idea: multiple row versions
When a row is UPDATED, Postgres doesn't overwrite it — it creates a NEW version and
marks the old one obsolete. Different transactions can see different versions.
→ Each transaction sees a consistent SNAPSHOT of the database as of its start
(depending on isolation level), unaffected by others' uncommitted changes.
