목차
- 트랜잭션이란?
- read commit
- repeatable read
- B가 트랜잭션 후 select
- B가 트랜잭션 안하고 select (= phantom read)
1. 트랜잭션이란?
- 일이 처리되기 위한 가장 작은 단위
- 한꺼번에 수행되어야할 일련의 연산모음 ex) 계좌송금
- DB의 상태를 변화시키기 위해 수행하는 작업 ex) Select, Insert, Delete, Update
** 서비스(service) : 여러 개의 트랜잭션을 하나의 트랜잭션으로 작업하는 것
2. read commit
- 커밋된 것을 읽는다
- 오라클DB의 특징
- 데이터가 read 되는 과정
- A가 update
- B가 select
- B는 A가 update 하고 있는 데이터가 아닌 이전에 커밋이 돼있는 데이터를 read
3. repeatable read
- 자기 트랜잭션번호보다 낮은 undo 로그를 read
- MySQL의 특징
- 데이터가 read 되는 과정
- B가 트랜잭션을 시작
- A가 트랜잭션을 시작 & update 와 commit 완료후 트랜잭션 종료
- B가 select하면 A가 update한 데이터가 아닌 B가 트랜잭션하기 전에 commit된 데이터를 read
- 단, B가 트랜잭션을 시작하지 않고 select를 한다면, A가 commit 하기 전후에 read 되는 데이터는 다르다
1) B가 트랜잭션 후 select
- read되는 데이터는 정확성이 있다
2) B가 트랜잭션 안하고 select
- read되는 데이터가 부정합 (= phantom read)
'IT 언어 > JPA' 카테고리의 다른 글
[JPA] Ajax란? (사용하는 이유, 비동기화 vs 동기화) (0) | 2024.03.15 |
---|---|
[JPA] 스프링의 파싱 전략 4가지와 JSON 통신 (0) | 2024.03.12 |
[JPA] JSON 이란? (0) | 2024.03.07 |