1. 옵티마이저와 인덱스 선택
- 컬럼에 인덱스를 생성하면, 해당 컬럼을 조건으로 사용하는 모든
WHERE절의 성능이 향상될 것이라고 기대하기 쉽습니다. - 하지만 항상 그렇지는 않습니다. 데이터베이스의 **옵티마이저(Optimizer)**는 쿼리를 실행하기 전에 여러 실행 가능한 방법을 평가하고, 그중 가장 비용이 적게 드는, 즉 가장 효율적이라고 판단되는 방법을 선택합니다.
- 이 과정에서 옵티마이저는 인덱스를 사용하는 것이 오히려 비효율적이라고 판단하면, 인덱스가 존재하더라도 과감히 포기하고 **테이블 전체를 스캔(Full Table Scan)**하는 방법을 선택할 수 있습니다.
기본 개념 참고
인덱스에 대한 기본적인 내용은 Index 문서를 참고해주세요.