트랜잭션 격리 수준 (Isolation Level)

I. 트랜잭션 격리 수준의 개념

하나의 트랜잭션 수행 시 다른 트랜잭션으로부터 독립성을 가지는 수준

II. 트랜잭션의 격리 수준

트랜잭션 격리 수준

격리 수준내용
Read

Uncommitted

– 트랜잭션 중 Commit 되지 않은 데이터를 다른 트랜잭션이 읽기 허용
Read

Committed

– 트랜잭션이 Commit되어 확정된 데이터만 다른 트랜잭션이 읽기 허용
Repeatable Read– 트랜잭션 진행 중 외부 데이터 변경을 차단하고 동일 데이터 읽기 허용
Serializable Read– 모든 트랜잭션은 순서대로 수행

– 가장 높은 격리 수준

트랜잭션 격리 수준에 따른 일관성 저해 요소

구분Dirty ReadNon-repeatable

Read

Phantom

Conflict

Read UncommittedOOO
Read CommittedXOO
Repeatable ReadXXO
SerializableXXX

III. 트랜잭션 격리 수준과 DB사용성(동시성)과의 관계

  • 트랜잭션 격리 수준을 높이면 일관성은 향상되지만, 더 넓은 범위의 Lock을 오랫동안 유지해야 하므로 동시성 저하
2 Comments

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^