본문 바로가기
Spring Boot

@Transactional

by 상국이 2023. 2. 5.
728x90

Isolation(격리 수준)

 

종류

  • READ_UNCOMMITED (level 0)
  • READ_COMMITED (level 1)
  • REPEATABLE_READ (level 2)
  • SERIALIZABLE (level 3)

READ_UNCOMMITED

 : 트랜잭션 처리중인(Uncommitted or Dirty) 데이터를 읽을 수 있다.

 

READ_COMMITED

 : 커밋된 데이터만 읽을 수 있음 (dirty read 방지)

 

REPEATABLE_READ

 : 트랜잭션이 완료될 때까지 SELECT문에 사용되는 모든 데이터에 shared lock이 걸려 데이터 수정이 불가능하다.

 * phantom read (한 트랜잭션 내에서 같은 쿼리를 두 번 수행 시, 첫 번째 쿼리에서 없던 레코드가 두 번째 쿼리에서 발생하거나 없어질 수 있음)가 발생할 수 있음

 

SERIALIZABLE

 : 데이터의 일관성  및 동시성을 위해 MVCC(Multi Version Concirrency Control : 데이터 조회 시 Lock을 사용하지 않고, 버전을 관리해 데이터의 일관성 및 동시성을 높이는 기술)를 사용하지 않음, 트랜잭션이 완료될 때까지 다른 사용자는 그 영역에 해당되는 데이터에 대한 수정 및 입력이 불가능

728x90

'Spring Boot' 카테고리의 다른 글

Redis  (0) 2022.03.26
DBCP  (1) 2022.03.26
인메모리 데이터베이스  (0) 2022.03.05
CORS  (0) 2022.02.28
HATEOAS  (0) 2022.02.28

댓글