DB격리수준, READ COMMIT문제점

HakJun·2022년 2월 20일
1

SpringBoot_JPA_BlogProject

목록 보기
18/25

DB격리수준

EX)

EMP라는 데이터베이스를 이용해
a Transaction이 시작해서, UPDATE로 11장보고 변경하려 한다.

b Transaction에서 empno가 11번인 데이터를 찾으면 임꺽정이 나온다->a가 커밋을 하지 않았기 때문

Transaction a가 종료하고 커밋을 하고 나면 그 이후부터 장보고가 출력됨, 이것이 readcommit이다.

b 가 작업을 할 때 11번이 임꺽정인것을 undo영역에 두고 있다.

그리고 a가 커밋을 하면 undo영역 데이터가 장보고로 바뀐다. 이것이 read commit

리드커밋의 정합성 문제

b가 마지막에 INSERT를 해서 연산을 하는 Transaction이 시작한다고 가정하자.

정산을 하려 할 때, SELECT 1차 만원, 2차 만원, 3차 2만원-> 다른 Transaction에서 커밋을 해서 값이 바뀐 것이다.

이처럼 데이터의 정합성이 깨지는 것을 Phantom read라고 한다.

profile
백엔드 & 전공 공부

0개의 댓글