Choose a default theme

You can change your theme from the menu

읽기 커밋

읽기 커밋은 다른 트랜잭션의 아직 커밋되지 않은 변경을 읽지 않도록 하는 격리 수준이다.

원리

PostgreSQL의 일반 SELECT는 문장이 시작할 때의 스냅샷을 읽는다. 같은 트랜잭션이라도 다음 문장은 새로 커밋된 내용을 볼 수 있다.

예시

첫 조회에서 재고가 10이었더라도 다른 트랜잭션이 갱신하고 커밋하면 다음 조회에서는 9가 보일 수 있다.

데이터베이스

관계형

MySQL · PostgreSQL · MariaDB · SQLite

NoSQL

Redis · MongoDB · Apache Cassandra

스토리지 엔진

InnoDB · RocksDB · MyRocks

주의할 점

한 번 읽은 값이 트랜잭션 내내 유지된다고 가정하면 안 된다. 읽고 판단한 뒤 쓰는 업무는 원자적 갱신, 명시적 잠금 또는 더 강한 격리가 필요한지 검토한다.

참고 자료