MVCC (Multi-Version Concurrency Control) est la façon dont PostgreSQL gère l'accès concurrent — au lieu de verrouiller les lignes pour les lectures, il conserve plusieurs versions des lignes, de sorte que chaque transaction voit un snapshot cohérent des données. L'avantage clé : les lecteurs ne bloquent pas les rédacteurs, et les rédacteurs ne bloquent pas les lecteurs, ce qui permet une haute concurrence.
L'idée fondamentale : plusieurs versions de lignes
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.
