본문 바로가기

Programming/Database

Database transaction Isolation level 트랜잭션 격리수준 정리

반응형

Isolation level(격리 수준) 이란?

어떤 트랜잭션이 다른 트랜잭션에서 변경한 데이터를 어떤 수준으로 볼 수 있도록 하는지에 대한 레벨이다.

 

격리 수준에는 4가지 레벨이 존재한다. (아래로 내려갈수록 격리 수준은 강해지고 동시처리능력이 떨어진다.)

  • Read Uncommitted
  • Read Committed
  • Repeatable Read
  • Serializable

 

Read Uncommitted

  • COMMIT되지 않은 데이터에도 접근이 가능한 수준이다.
  • Dirty Read가 발생할 수 있다.

 

Read Committed

  • COMMIT 된 데이터에만 접근할 수 있는 수준이다.
  • NON REPEATABLE READ가 발생할 수 있다.
  • 대부분의 RDB에서 기본값으로 사용하고 있다.

 

Repeatable Read

  • 트랜잭션 시작 전 COMMIT 된 데이터에만 접근할 수 있는 수준이다.
  • Phantom Read가 발생할 수 있다.

 

Serializable

  • 특정 트랜잭션이 접근중인 테이블에 다른 트랜잭션은 접근이 불가능한 수준이다.

 

반응형