반응형
트랜잭션 격리수준(Transaction Isolation)은 DB 처리의 기초중 하나이다.
Isolation은 ACID 약어의 I로서 여러 트랜잭션이 동시에 데이터를 변경하고 쿼리를 수행할 때 성능과 안정성, 일관성, 결과 재현성 사이의 균형을 조정하는 설정이다.
※ ACID : Atomicity(원자성), Consistency(일관성), Isolation(고립성), Durability(영구성)
READ UNCOMITTED
커밋하지 않은 데이터에도 접근이 가능한 격리 수준.
트랜잭션의 작업중인 내용이 커밋 또는 롤백처리 되지않아도 즉시 노출이 된다. 다만 이렇게 될 경우 Dirty Read가 되어 롤백 또는 커밋 전의 데이터로 인해 정합성이 유지되지 않을 수 있습니다.
RDBMS에서는 권장하지 않는 격리 수준이므로 사용시 유의 필요.
REPEATABLE READ
트랜잭션이 시작되기 전에 커밋된 내용에 대해서만 조회가능 한 격리수준. 버저닝을 통해 트랜잭션 내에서 조회한 내용이 항상 동일함을 보장한다.
다만 Phantom Read가 발생할 수 있다.
READ COMMITTED
커밋된 데이터만 조회할 수 있는 격리 수준.
Phantom Read와 Non-Repeatable Read 문제까지 발생할 수 있음.
SERIALIZABLE
트랜잭션들이 모두 동시에 일어나지 않고 순차적으로 실행되는 것 처럼 동작한다. 다만 처리 성능(속도)이 낮기 때문에 거의 사용 하지 않는다.
반응형
'2_개발노트' 카테고리의 다른 글
[GIT] ! [rejected] main -> main (non-fast-forward) 에러 해결 (0) | 2024.06.05 |
---|---|
[오라클] ORA-01438:이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다. (0) | 2022.01.21 |
[오라클] 쿼리에서 JSON 파싱하기. (0) | 2022.01.04 |
[오라클] Number 타입 이란? (0) | 2021.10.01 |
[오라클] ORA-01012 : not logged on (0) | 2021.09.30 |