목차

  1. 트랜잭션이란?
  2. read commit
  3. repeatable read
    1. B가 트랜잭션 후 select
    2. B가 트랜잭션 안하고 select (= phantom read)

 

 

 

1. 트랜잭션이란?

  • 일이 처리되기 위한 가장 작은 단위
  • 한꺼번에 수행되어야할 일련의 연산모음 ex) 계좌송금 
  • DB의 상태를 변화시키기 위해 수행하는 작업 ex) Select, Insert, Delete, Update

** 서비스(service) : 러 개의 트랜잭션을 하나의 트랜잭션으로 작업하는 것

 

 

2. read commit

  • 커밋된 것을 읽는다
  • 오라클DB의 특징
  • 데이터가 read 되는 과정
    1. A가 update
    2. B가 select
    3. B는 A가 update 하고 있는 데이터가 아닌 이전에 커밋이 돼있는 데이터를 read

 

 

 

 

3. repeatable read

  • 자기 트랜잭션번호보다 낮은 undo 로그를 read
  • MySQL의 특징
  • 데이터가 read 되는 과정
    1. B가 트랜잭션을 시작
    2. A가 트랜잭션을 시작 & update 와 commit 완료후 트랜잭션 종료
    3. B가 select하면 A가 update한 데이터가 아닌 B가 트랜잭션하기 전에 commit된 데이터를 read
    4. 단, B가 트랜잭션을 시작하지 않고 select를 한다면, A가 commit 하기 전후에 read 되는 데이터는 다르다

 

 

1) B가 트랜잭션 후 select

  • read되는 데이터는 정확성이 있다

 

 

 

2) B가 트랜잭션 안하고 select

  • read되는 데이터가 부정합 (= phantom read)

 

+ Recent posts