ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DB] Isolation
    데이터베이스 2021. 4. 25. 12:08
    728x90

    Isolation

    트랜잭션은 DML을 만나면 암묵적으로 시작

     

    명령어

    set transaction

    commit

    rollback

    savepoint : abort 시 이 시점으로 돌아감

    rollback to savepoint

     

    consistency vs performance

    Read-only 트랜잭션 : 대략적인 추정 결과를 내놓는 대신 성능을 향상시키는 방법을 사용 = Consistency level 이 낮음

     

    Degree-two consistency

    Two-phase locking protocol 은 phase 2가 되어야 unlock 이 가능하지만 Degree-two consistency 는 S-lock 에 한하여 중간중간에도 unlock 이 가능

    주로 Cursor 에 사용됨 = 읽을 때만 S-lock 을 걸어버리고, 데이터의 전달이 마무리되면 S-lock 을 품

     

    Isolation level

    • Serializable : default = 가장 강함
    • Repeatable read : commit 된 레코드만 읽을 수 있으므로 Consistency 를 보장함, 팬텀 현상 발생 가능
      여러 번 읽어도 같은 결과를 리턴함 : mysql 기본
    • Read committed : degree two consistency 를 사용 : 커밋된 것만 읽으나 S-lock 을 바로 풀어버려서 문제의 여지가 있음 -> 여러 번 읽으면 다른 결과를 리턴할 수 있음 : 보통 상업 디비는 이게 기본임
    • Read uncommitted : 커밋 안된것도 읽음

     

    명령어

    Set transaction (read only | read write) isolation level (Serializable | repeatable read | read committed | read uncommitted);

     

    '데이터베이스' 카테고리의 다른 글

    [DB] Recovery 로깅 방식  (0) 2021.04.25
    [DB] Recovery 기본 개념 + Shadow  (0) 2021.04.25
    [DB] 팬텀현상  (0) 2021.04.24
    [DB] 데드락  (0) 2021.04.24
    [DB] 동시성 제어  (0) 2021.04.24

    댓글

Designed by Tistory.