같은 조건, 다른 결과 집합
팬텀 읽기는 기존 행의 값이 아니라,
조건에 걸리는 행 집합이 바뀌는 현상입니다.
조회 조건은 그대로인데, 그 사이 새 행이 범위 안으로 들어오거나 빠져서 같은 쿼리의 결과 건수가 달라집니다.
SELECT id, amount
FROM orders
WHERE status = 'PAID' AND amount >= 100000;
중간에 일어난 일
T2가 INSERT 후 COMMIT
새 주문 한 건이 같은 WHERE 조건을 만족하게 됨
→
새 행이 범위 안으로 진입
기존 행이 수정되지 않아도 결과 집합은 달라질 수 있음
#118
160,000원 PAID · 새로 포함
핵심 포인트
팬텀 읽기는 같은 조건의 재조회에서 행의 추가·삭제 때문에 결과 집합 자체가 달라지는 문제입니다. 즉, 바뀐 것은 개별 행의 값이 아니라 조건 범위 안에 존재하는 행 목록입니다.