반응형
인덱스 스캔?
데이터베이스의 옵티마이저가 데이터를 효율적으로 검색하기 위한 탐색 방법
- Unique Index Scan (유일 인덱스 스캔)
- 유일한 값만을 찾기 때문에 가장 빠름.
- 유일한 인덱스가 적용된 컬럼에 대해 특정 값을 조회할 때 사용
ex) SELECT * FROM table WHERE unique_column = 'value'
- Index Range Scan (인덱스 범위 스캔)
- 인덱스의 특정 범위 내에서 여러 행을 찾을 때 사용.
- 일반적으로 조건절에 범위 조건이 포함될 때 사용
ex) SELECT * FROM table WHERE indexed_column BETWEEN 'value1' AND 'value2'
- Index Skip Scan (인덱스 스킵 스캔)
- 인덱스의 선행 컬럼이 조건에 포함되지 않았을 때 사용
- 인덱스의 일부 컬럼을 건너뛰고 후속 컬럼을 사용하여 검색
- ex) SELECT * FROM table WHERE indexed_column2 = 'value' (indexed_column1은 조건에 포함되지 않음)
- Index Full Scan (인덱스 풀 스캔)
- 인덱스 전체를 순차적으로 스캔
- 주로 인덱스의 선행 컬럼 조건이 없거나, 인덱스 전체에 대한 접근이 필요한 경우 사용
- ex) SELECT * FROM table WHERE non_indexed_column = 'value'
- Index Fast Full Scan (인덱스 패스트 풀 스캔)
- 인덱스의 전체 데이터를 빠르게 스캔.
- 테이블 전체 스캔 대신 사용되며, 모든 인덱스 컬럼에 접근해야 하는 경우에 유용함.
- ex) SELECT indexed_column1, indexed_column2 FROM table
- Index Join Scan (인덱스 조인 스캔)
- 여러 인덱스를 조인하여 데이터 검색
- 주로 복합 인덱스를 사용할 수 없는 경우 사용됨
- ex) SELECT * FROM table WHERE indexed_column1 = 'value1' AND indexed_column2 = 'value2'
- Index Block Scan (인덱스 블록 스캔)
- 인덱스의 블록을 한 번에 읽어들이는 방식으로 대량의 데이터에 접근할 때 사용.
- 특정 데이터베이스 시스템에서만 사용 가능
반응형