DB/[이론]

트랜잭션 격리수준(isolation level)

씩씩한 IT블로그 2023. 11. 19. 18:58
반응형

트랜잭션 격리수준

                                                       발생에러  
                                  \
트렌잭션 격리수준
Dirty Read Non-Repeatable read Pantom Read
격리수준 낮음
.
.
.
.
.
격리수준 높음
READ UNCOMMITED 발생 가능 발생 가능 발생 가능
READ COMMITED 없음 발생 가능 발생 가능
REPEATABLE READ 없음 없음 발생 가능
SERIALIZABLE 없음 없음 없음

 

READ UNCOMMITED 

가장 낮은 격리수준으로서 커밋되지 않은 데이터를 볼 수 있음. 따라서 dirty read오류 발생

 

READ COMMITED

커밋된 데이터만 읽는것.  다른 A 트랜잭션에서 변경한 데이터를 읽을 때 B 트랜잭션에서 일관되게 읽지 않을 수 있음. 즉 unrepeatable read가 발생할 수 있음.

오라클의 격리수준

 

REPEATABLE READ

선행 트랜잭션이 읽은 데이터는 트랜잭션이 종료될 때까지 후행 트랜잭션에서 읽는것을 금지함. phantomread가 발생

MYSQL의 격리수준

 

SERIALIZABLE

가장 높은 격리수준. 성능이 낮다

실제로 거의 사용하지 않는다

반응형