이 장에서는 PostgreSQL 데이터베이스의 동작에 대해 설명합니다 둘 이상의 세션이 동일한 데이터에 액세스하려고 할 때 시스템 동시. 이러한 상황의 목표는 효율적으로 허용하는 것입니다 엄격한 데이터 무결성을 유지하면서 모든 세션에 대한 액세스. 데이터베이스 응용 프로그램의 모든 개발자는 익숙해야합니다 이 장에서 다루는 주제.
잠금 장치를 사용하는 기존 데이터베이스 시스템과 달리 사설 토토력 관리,postgresql데이터 일관성을 유지합니다 멀티버션 모델 사용 (Multiversion Concurrency Control,MVCC). 이것은 그것을 의미합니다 데이터베이스 쿼리 각 트랜잭션은 데이터 스냅 샷을 볼 수 있습니다 (A데이터베이스 버전) 시간이었던 것처럼 전, 기본 데이터의 현재 상태에 관계없이. 이는 거래가 일관되지 않은 데이터를 보지 않도록 보호합니다 이는 (기타) 동시 거래 업데이트로 인해 발생할 수 있습니다 동일한 데이터 행에서 제공거래 격리각 데이터베이스에 대해 세션.
Multiversion과 Lock 모델의 주요 차이점은입니다 쿼리 (읽기) 데이터를 위해 획득 한 MVCC 잠금 장치에서 데이터 작성을 위해 획득 한 자물쇠와 충돌하여 읽기 글쓰기와 글쓰기를 차단하지 마십시오.
테이블 및로드 레벨 잠금 시설도 제공됩니다 안에PostgreSQL응용 프로그램 그것은 MVCC 행동에 쉽게 적응할 수 없습니다. 그러나 적절한 사용 MVCC는 일반적으로보다 나은 성능을 제공합니다 자물쇠.