-
[DB] Isolation데이터베이스 2021. 4. 25. 12:08728x90
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