
데이터베이스
Transaction Isolation Level트랜잭션 격리 수준
트랜잭션 격리 수준(Isolation Level)은 동시에 실행되는 트랜잭션들이 서로 얼마나 독립적으로 동작하는지를 정의하는 ACID의 Isolation 속성 구현 단계다.
격리 수준별 허용 이상 현상
| 격리 수준 | Dirty Read | Non-Repeatable Read | Phantom Read |
|---|---|---|---|
| READ UNCOMMITTED | 발생 | 발생 | 발생 |
| READ COMMITTED | 방지 | 발생 | 발생 |
| REPEATABLE READ | 방지 | 방지 | 발생 |
| SERIALIZABLE | 방지 | 방지 | 방지 |
이상 현상 설명
PostgreSQL / MySQL 설정
MVCC와의 관계
PostgreSQL은 MVCC를 사용해 Read Lock 없이 READ COMMITTED와 REPEATABLE READ를 구현한다. 읽기는 쓰기를 블로킹하지 않는다.
기본값
- •PostgreSQL: READ COMMITTED
- •MySQL InnoDB: REPEATABLE READ
- •Oracle: READ COMMITTED
관련 개념
- •MVCC — 격리 수준 구현 메커니즘
- •ACID — 격리 수준이 구현하는 속성
- •데드락 — 높은 격리 수준에서 증가
- •데이터베이스 트랜잭션 — 격리 수준이 적용되는 단위