X

트랜잭션 격리 수준 (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 등 발생 가능
Categories: 데이터베이스
도리:

View Comments (2)