← 문제 목록
고급 SQL 100P

REPEATABLE READ 팬텀 리드

MySQL 기본 격리 수준에서 트랜잭션 내 같은 범위 쿼리의 결과가 다를 수 있는 상황을 찾으세요:
SQL
-- 트랜잭션 A (REPEATABLE READ)
START TRANSACTION;
SELECT COUNT(*) FROM orders
    WHERE status = 'pending';
-- 결과: 10

-- 이 시점에 트랜잭션 B가 새 pending 주문 INSERT 후 COMMIT

SELECT COUNT(*) FROM orders
    WHERE status = 'pending';
-- 결과: 여전히 10 (스냅샷 읽기)

UPDATE orders SET priority = 1
    WHERE status = 'pending';
-- 11행 업데이트됨! (현재 읽기)

답변

로그인 후 제출하기
0명 풀이 · 정답률 0%