Closed JasonYoo1995 closed 3 years ago
- 트랜잭션 1을 시작한다.
- 트랜잭션 2를 시작한다.
- 트랜잭션 1이 ID = 1, VAL = 'MIN'인 데이터의 VAL을 KIM으로 변경했다.
- 트랜잭션 2가 ID = 1을 조회한다. VAL = 'KIM'이 조회되었다.
- 트랜잭션 1, 2가 종료된다.
2. READ_COMMITED (Level 1)
- 트랜잭션 1을 시작한다.
- 트랜잭션 1이 ID = 1인 데이터의 VALUE를 KIM으로 변경했다.
- 트랜잭션 2가 시작되었다.
- 트랜잭션 2가 ID = 1인 데이터를 조회한다. MIN이 검색된다.
- 트랜잭션 1이 커밋을 하고 종료한다.
- 트랜잭션 2가 ID = 1인 데이터를 조회한다. KIM이 검색된다.
- 트랜잭션 2가 커밋을 하고 종료한다.
3. REPEATABLE_READ (Level 2)
- 트랜잭션 1을 시작한다.
- 트랜잭션 1이 ID = 1인 데이터를 조회한다.
- 트랜잭션 2가 시작되었다.
- 트랜잭션 2가 ID = 1인 데이터를 KIM으로 변경한다.
- 트랜잭션 1이 ID = 1인 데이터를 조회한다. 트랜잭션 2의 변경 내역이 보이지 않는다.
- 트랜잭션 2가 ID = 2인 데이터를 삽입 후 commit하여 트랜잭션을 종료한다.
- 트랜잭션 1이 ID = 2인 데이터를 조회한다. 데이터가 정상적으로 확인된다.
- 트랜잭션 1이 종료된다.
4. SERIALIZABLE (Level 3)
질문
트랜잭션 격리 원리 / 데드락 / 트랜잭션 격리 수준
연관 챕터
66