Transaction isolationLevel

Woozy9ucci·2023년 12월 27일
0

DB

목록 보기
3/4

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

  • READ UNCOMMITTED

    COMMIT되지 않은 데이터를 읽을 수 있다.
    snapshot 으로 작업중인 데이터라도..
    보통 이 level에서는 MVCC가 적용되지 않는다.
    (DIRTY READ)
  • READ COMMITTED

    read 시점을 기준으로 최근에 COMMIT 된 데이터만 읽는다.
    (NON_REPEATABLE READ)
  • REPEATABLE READ

    특정 시점 (DB마다 다름)을 기준으로 최근에 COMMIT 된 데이터만 읽는다.
    e.g. tx시작시, 최초 read시..
    (PHANTOM READ) -> MVCC 사용하는 rdb에서는 스냅샷을 생성하여 사용하기 때문에 발생하지 않는다.
  • SERIALIZABLE

    가장 엄격한 격리수준

부정합 문제

  • DIRTY READ
    다른 트랜잭션에서 작업이 commit되지 않았음에도 이를 읽게 되는 현상
  • NON-REPEATABLE READ
    하나의 트랜잭션 내에서 동일한 read를 했음에도 다른 결과를 얻는 현상
  • PHANTOM READ
    하나의 트랜잭션 내에서 동일한 쿼리문이 실행되었음에도 다른 결과를 얻는 현상
    e.g. 없던 데이터..

0개의 댓글