2018년 11월 20일
트랜잭션 격리 수준 (Isolation Level)
1. 트랜잭션 격리 수준의 개념
- 트랜잭션 격리 수준: 하나의 트랜잭션 수행 시 다른 트랜잭션으로부터 독립성을 가지는 수준
2. 트랜잭션 격리 수준
(1) 트랜잭션 격리 수준의 유형
| 격리 수준 | 내용 |
|---|---|
| Read Uncommitted | – 트랜잭션 중 Commit 되지 않은 데이터를 다른 트랜잭션이 읽기 허용 |
| Read Committed | – 트랜잭션이 Commit되어 확정된 데이터만 다른 트랜잭션이 읽기 허용 |
| Repeatable Read | – 트랜잭션 진행 중 외부 데이터 변경을 차단하고 동일 데이터 읽기 허용 |
| Serializable Read | – 모든 트랜잭션은 순서대로 수행 – 가장 높은 격리 수준 |
(2) 트랜잭션 격리 수준에 따른 일관성 저해 요소
| 구분 | Dirty Read | Non-repeatable Read | Phantom Conflict |
|---|---|---|---|
| Read Uncommitted | O | O | O |
| Read Committed | X | O | O |
| Repeatable Read | X | X | O |
| Serializable | X | X | X |
3. 트랜잭션 격리 수준과 DB사용성(동시성)과의 관계
![]() |
- 트랜잭션 격리 수준을 높이면 일관성은 향상되지만, 더 넓은 범위의 Lock을 오랫동안 유지해야 하므로 동시성 저하
- 트랜잭션 격리 수준을 낮추면 동시성은 향상 되지만 일관성 저하되어 Dirty Read 등 발생 가능
2 Comments

혹시 기술사님이세요? 정말 큰 도움 받고 있습니다 감사합니다
네 맞습니다. 도움이 되셨다니 다행입니다.^^