2018년 11월 20일
트랜잭션 격리 수준 (Isolation Level)
I. 트랜잭션 격리 수준의 개념
하나의 트랜잭션 수행 시 다른 트랜잭션으로부터 독립성을 가지는 수준
II. 트랜잭션의 격리 수준
트랜잭션 격리 수준
격리 수준 | 내용 |
---|---|
Read Uncommitted | – 트랜잭션 중 Commit 되지 않은 데이터를 다른 트랜잭션이 읽기 허용 |
Read Committed | – 트랜잭션이 Commit되어 확정된 데이터만 다른 트랜잭션이 읽기 허용 |
Repeatable Read | – 트랜잭션 진행 중 외부 데이터 변경을 차단하고 동일 데이터 읽기 허용 |
Serializable Read | – 모든 트랜잭션은 순서대로 수행 – 가장 높은 격리 수준 |
트랜잭션 격리 수준에 따른 일관성 저해 요소
구분 | 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 |
III. 트랜잭션 격리 수준과 DB사용성(동시성)과의 관계
- 트랜잭션 격리 수준을 높이면 일관성은 향상되지만, 더 넓은 범위의 Lock을 오랫동안 유지해야 하므로 동시성 저하
2 Comments
혹시 기술사님이세요? 정말 큰 도움 받고 있습니다 감사합니다
네 맞습니다. 도움이 되셨다니 다행입니다.^^