
[PostgreSQL] PostgreSQL에서 MVCC와 VACUUM의 역할과 작동 방식
·
DB_postgreSQL
MVCC (Multi-Version Concurrency Control)MVCC란?PostgreSQL의 MVCC는 여러 사용자가 동시에 데이터베이스를 읽고 쓰는 작업을 할 수 있도록 하여, 동시성을 보장하는 방식이다. MVCC는 트랜잭션이 데이터에 접근할 때마다 데이터의 여러 버전을 관리하여 데이터의 일관성과 정합성을 유지한다.작동 방식모든 데이터는 "버전 정보"를 가진다.각 데이터 Row에는 시스템 컬럼 xmin과 xmax가 존재xmin: Row를 생성한 트랜잭션 IDxmax: Row를 삭제하거나 수정한 트랜잭션 ID 데이터를 읽을 때 (SELECT)트랜잭션은 자신이 시작된 시점을 기준으로 유효한 Row만을 읽는다.예를 들어, 트랜잭션 T1이 SELECT를 수행하면, T1은 자신이 시작된 시점에서 유효..