같은 시작점

둘 다 B+Tree에서 같은 키를 먼저 찾습니다

차이는 키를 찾은 뒤 바로 끝낼 수 있는지, 아니면 같은 키가 더 있는지 범위를 더 확인해야 하는지에 있습니다.

WHERE email = 'user@example.com'
공통 동작

인덱스에서 email 키 위치까지는 동일하게 이동

갈리는 지점

중복 가능성이 있으면 다음 키까지 더 확인해야 함

유니크 인덱스

중복 불가
1

키를 찾으면 결과가 한 건으로 확정됩니다

같은 email 값이 더 있을 수 없으므로 탐색 범위를 넓힐 이유가 없습니다.

2

즉시 반환하고 스캔을 종료합니다

찾는 순간 종료 조건이 만족되어 추가 확인 비용이 거의 없습니다.

실행 방식

Index Unique Scan

한 건 찾으면 바로 끝나는 단건 조회에 적합

일반 인덱스

중복 가능
1

키를 찾은 뒤에도 범위를 더 봐야 합니다

같은 email 값이 이어질 수 있으므로 다음 엔트리까지 확인하며 범위 끝을 판단합니다.

2

중복 여부를 확인한 뒤 반환합니다

추가 확인이 작지만 남아 있어 종료 시점이 유니크 인덱스보다 늦습니다.

실행 방식

Index Range Scan

같은 키가 여러 건일 수 있어 범위 확인이 필요

핵심 차이: 종료 조건

유니크 인덱스는 찾는 순간 끝, 일반 인덱스는 같은 키가 더 없는지 확인 후 끝. 그래서 차이는 작지만 유니크 인덱스 쪽이 조금 더 빠를 수 있습니다.