Isolation Level 2

postgreSQL - 트랜잭션 격리 수준

공부 내용을 정리한 글입니다. 틀린 내용이 있을 수 있으니 아래 첨부한 공식 문서를 참조하세요. PostgreSQL의 트랜잭션 격리 수준 pg는 총 네 가지 격리 수준(Read uncommitted, Read committed, Repeatable read, Serializable)을 제공하지만, 내부적으로는 read committed, repeatable read, serializable 세 가지 격리 수준으로 동작합니다. 공식 문서에 따르면 표준 격리 수준을 PostgreSQL MVCC와 매핑하는 유일한 합리적인 방법이라서 그렇게 제공한다고 말하고 있습니다. pg는 트랜잭션의 격리 수준을 구현하기 위해 MVCC를 사용합니다. MVCC란 특정 시점을 기준으로 "커밋된" 데이터를 읽는 것입니다. 반면, ..

RDB 2023.12.05

트랜잭션의 격리성과 격리 수준

개인적으로 공부한 내용을 기반으로 작성하였습니다. 잘못된 내용을 반견하신 경우, 댓글로 알려주시면 감사하겠습니다. 이전 글의 트랜잭션 ACID 속성으로부터 파생된 내용입니다. 트랜잭션 격리성 트랜잭션은 종종 동시에 실행됩니다. 여러 트랜잭션이 동시에 수행되더라도 각각의 트랜잭션은 다른 트랜잭션의 수행에 영향을 받지 않고 격리되어 수행되어야 합니다. 즉, 한 트랜잭션의 작업이 다른 트랜잭션에 영향을 주지 않고 서로 격리되어 실행되어야 한다는 의미입니다. 이러한 Isolation 성질을 보장하지 않으면 데이터의 일관성과 무결성이 깨질 수 있습니다. 예를 들어, 각각 50원씩 들어있는 계좌 X, Y가 있을 때, X에서 Y로 30원을 입금하는 트랜잭션 1과 Y에서 X로 30원을 입금하는 트랜잭션 2가 격리성을 ..