본문 바로가기
IT기술노트/데이터베이스

Phantom Read

by 비트코기 2021. 3. 7.

I. Phantom Read

정의

한 트랜잭션 내에서 같은 쿼리를 두 번 수행 시, 첫 번째 쿼리에서 없던 레코드(유령, Phantom)가 두 번째 쿼리에서 발생하는 현상

절차

절차

트랜잭션

데이터 예제

설명

Read

Transaction B

 

Read Transaction 은 총 N 개의 Record Read

Write (Insert)

Transaction A

 

Write Transaction 에 의해 기존 Record 에신규로 Insert 를 수행하여 Record Count N+1 로 증가

Read

Transaction B

 

Read Transaction 은 동일 Data 에 대해서 Read 를 재 수행 하였으나, 처음 읽었을 때보다 N+1 Record Count 증가

- 이 외에 Read Transaction 작업 중간, Write Transaction Update/Commit 함으로 인해 초기 읽은 data를 다시 읽을 수 없는 Non-repeatable Read 가 존재 - Dirty Read, Non-Repeatable Read, Phantom Read 문제를 해결하기 위해 Database 는 트랜잭션 수준 읽기 일관성 (Transaction-Level Read Consistency)을 제공

 

 

반응형

'IT기술노트 > 데이터베이스' 카테고리의 다른 글

Locking  (0) 2021.03.07
동시성제어의 문제점  (0) 2021.03.07
동시성제어(Concurrency Control)  (0) 2021.03.07
Isolation Level  (0) 2021.03.07
Dirty Read  (0) 2021.03.07
정적, 동적 인덱싱  (0) 2021.03.07
Dense, Sparse, Multilevel Index  (0) 2021.03.07
DB Index  (0) 2021.03.07

댓글