트랜잭션

Jiwon Park·2023년 3월 28일
0

Isolationlevel

아래로 내려갈수록 트랜잭션간 고립 정도가 높아지며, 성능이 떨어지는 것이 일반적이다.

1. read uncommited

커밋되지 않은 데이터도 다른 트랙잭션에서 조회 가능하다.
Dirty Read 발생 등 데이터 정합성에 문제가 많아진다.

2. read commited

트랜잭션의 변경 내용이 COMMIT 되어야만 다른 트랜잭션에서 조회할 수 있다.
Non-Repeatable Read 발생

3. repeatable read

트랜잭션이 시작되기 전에 커밋된 내용에 대해서만 조회할 수 있다.
트랜잭션을 시작했으면 다른 트랜잭션의 변경은 무시된다.(내 트랜잭션을 끝내야 반영됨)
insert는 가능(팬텀리드 발생) Write Lock걸어야 방지됨

4. serializable

한번에 하나의 트랜잭션만 독립적으로 수행


Transaction의 속성

Atomocity : 나눌 수 없는 하나의 작업으로 다뤄져야 한다.
Consistency : 트랜잭션 수행 전 과 후가 일관된 상태를 유지해야 한다.
Isolation : 각 트랜잭션은 서로 영향을 주지 않고 독립적으로 수행되어야 한다.
->상황에 맞게 적절한 Isolation level선택(낮을 수록 병렬처리로 효율적이지만 품질이 떨어질 수 있음)
Durability : 성공한 트랜잭션의 결과는 유지되어야 한다.

profile
안녕하세요

0개의 댓글