MVCC(Multi-Version Concurrency Control, 다중 버전 동시성 제어)는 PostgreSQL이 동시 접근을 처리하는 방식입니다 — 읽기를 위해 행을 잠그는 대신 행의 여러 버전을 유지하여, 각 transaction이 데이터의 일관된 스냅샷을 보게 합니다. 핵심 이점: 읽기가 쓰기를 막지 않고, 쓰기가 읽기를 막지 않음 — 높은 동시성을 가능하게 합니다.
핵심 아이디어: 여러 행 버전
행이 UPDATE되면 Postgres는 덮어쓰지 않습니다 — 새 버전을 생성하고 이전 것을
쓸모없는 것으로 표시합니다. 다른 transaction은 다른 버전을 볼 수 있습니다.
→ 각 transaction은 시작 시점의 데이터베이스 일관된 스냅샷을 봅니다
(격리 수준에 따라), 다른 것의 커밋되지 않은 변경에 영향받지 않습니다.
