본문 바로가기
Database/mysql

[MYSQL /Database] 트랜잭션의 격리 수준

by JINJINC 2023. 4. 14.
728x90
반응형

 트랜잭션의 격리 수준

- 트랜잭션의 격리수준은 동시에 여러 트랜잭션이 처리될 때,
  특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 
  허용할지 말지를 결정하는 것이다.

격리 수준에 따라 발생할 수 있는 문제점(부정합)

- DIRTY READ
  어떠한 트랜잭션에서 처리한 작업이 완료되지 않았음에도 불구하고 다른 트랜잭션에서 볼 수 있게 되는 현상

 

- NON-REPEATABLE READ
  동일한 SELECT 쿼리를 실행했을 때 항상 같은 결과를 보장해야 한다는 "REPEATABLE READ" 정합성에 어긋나는 현상

 

- PHANTOM READ
  한 트랜잭션내에서 동일한 쿼리를 두 번 수행했는데, 
  첫 번째 쿼리에서 존재하지 않던 유령(Phantom) 레코드가 두 번째 쿼리에서 나타나는 현상

 

트랜잭션 격리 수준 변경 및 확인

 

set autocommit =0  ;  --자동 commit 비활성화

트랜잭션 격리수준  확인하기

 

방법1 . select @@GLOBL.transaction_isolation;  -- Global 정보 확인

방법1

방법2. select @@SESSION.transaction_isolation; -- Session 정보 확인

방법2


'REPEATABLE-READ' -- 기본값


 

 

 

 

\

728x90
반응형

댓글