본문 바로가기
IT/DB

인덱스 스캔(index scan)

by 하루 또다시 하루 2026. 2. 3.
반응형

SCAN 방식의 기본 개념

1️⃣ FULL TABLE SCAN

테이블 전체를 처음부터 끝까지 읽는 방식입니다.

다음과 같은 경우에 선택됩니다.

  • WHERE 절 컬럼에 인덱스가 없는 경우
  • 조건을 만족하는 데이터 비율이 매우 높은 경우
  • 테이블 자체의 데이터 건수가 적은 경우

데이터가 적은 테이블에서는
인덱스를 거치는 것보다 FULL TABLE SCAN이 오히려 빠를 수 있습니다.


2️⃣ ROWID SCAN

ROWID를 이용해 단일 행에 직접 접근하는 방식입니다.
가장 빠른 접근 방법으로, 보통 다음과 같은 경우에 발생합니다.

  • ROWID를 조건절에서 직접 사용한 경우
  • 인덱스 스캔 후 실제 테이블 데이터를 읽을 때

3️⃣ INDEX SCAN 종류

INDEX SCAN은 상황에 따라 여러 방식으로 나뉩니다.

  • INDEX UNIQUE SCAN
    UNIQUE 인덱스의 모든 컬럼을 = 조건으로 조회하는 경우
  • INDEX RANGE SCAN
    PK 일부 사용 또는 일반적인 WHERE 조건 조회
  • INDEX RANGE SCAN DESCENDING
    RANGE SCAN과 동시에 ORDER BY DESC를 만족하는 경우
  • INDEX SKIP SCAN
    결합 인덱스의 선행 컬럼 없이도 옵티마이저 판단으로 사용하는 경우
  • INDEX FULL SCAN
    ORDER BY / GROUP BY를 인덱스로 처리하는 경우
  • INDEX FAST FULL SCAN
    테이블을 보지 않고 인덱스만으로 처리하며, 정렬이 필요 없는 경우
  • INDEX JOIN
    필요한 컬럼이 여러 인덱스에 분산되어 있을 때 인덱스끼리 조인하는 방식

결합 인덱스 정리

결합 인덱스는 두 개 이상의 컬럼을 묶어 만든 인덱스로,
컬럼의 순서가 성능에 매우 큰 영향을 미칩니다.

일반적인 우선순위는 다음과 같습니다.

  1. WHERE 절에서 가장 자주 사용되는 컬럼
  2. = 조건으로 사용되는 컬럼
  3. 데이터 분포도가 좋은 컬럼
  4. 사용 빈도가 높은 컬럼 순서

특히 선행 컬럼이 WHERE 절에서 사용되지 않으면
해당 인덱스는 거의 활용되지 않는 경우가 많습니다.

 

반응형