따라서, 다른 트랜잭션에서 수행한 삽입 작업에 의해 레코드가 보였다 안 보였다 하는 현상을 유령 읽기(PHANTOM READ)라고 한다.
MVCC에 의해 잠금 없는 SELECT 조회에서는 Phantom Read 현상이 발생하지 않는다. (자신보다 나중에 실행된 트랜잭션의 레코드는 무시하고, 일관된 읽기 가능)
하지만, SELECT FOR UPDATE를 통해 쓰기 잠금을 건 경우 Phantom Read가 발생할 수 있다.
SELECT FOR UPDATE 쿼리는 SELECT 하는 레코드에 쓰기 잠금을 걸어야하는데, 언두 레코드에는 잠금을 걸수없다. 그래서 SELECT FOR UPDATE로 조회되는 레코드는 언두 영역의 변경 전 데이터를 가져오는 것이 아니라 실제 테이블의 레코드의 값을 가져오게 된다.