본문 바로가기
Database#Database#Transaction조회 3

MVCC란?Multi-Version Concurrency Control

정의

여러 트랜잭션이 같은 데이터를 동시에 읽고 쓸 때 락 대신 여러 버전을 유지해 충돌을 피하는 기법. Postgres의 기반.

다른 표현MVCC다중 버전 동시성 제어

MVCC란?

전통적 락 기반 동시성 제어는 읽기도 대기시킨다. MVCC는 각 트랜잭션에 데이터의 특정 스냅샷을 보여줘 락 없이 읽기가 가능하다.

Postgres에서

행마다 xmin, xmax로 언제 만들어지고 언제 삭제됐는지 기록. 오래된 버전은 VACUUM이 정리.

장점

  • 읽기가 쓰기를 막지 않음
  • 일관된 스냅샷 (REPEATABLE READ 자연스러움)

단점

  • 오래된 버전이 쌓여 테이블 bloat
  • VACUUM이 제때 돌지 않으면 성능 저하
  • Long running transaction이 vacuum 막으면 치명적

📘 관련 기술노트

전체 보기 →

🔗 함께 보면 좋은 용어

Database 전체 →