조건 검색(Where 절)의 효율성
테이블의 레코드는 순서가 없는 상태로 저장된다. 이런 상태에서 Where절을 이용하여 ID=123 인 데이터를 검색한다고 가정하면 레코드의 처음~끝까지 다 읽어서 ID가 123인 데이터를 찾아준다. 이러한 방식을 Full Table Scan 이라고 한다.
반면, 인덱스는 데이터를 정렬한 상태로 저장하기 때문에 만약 ID가 인덱스 컬럼으로 지정되어있는 상태에서 Where절을 이용해 탐색을 하면 먼저 인덱스 자료구조안에서 ID가 123인 데이터를 찾아 해당 레코드의 물리적 저장주소를 확인 후 해당 주소를 참고하여 테이블 내 데이터를 바로 검색하여 반환한다. 이것이 인덱스를 사용하는 가장 큰 이유이다.
정렬(Order by절)의 효율성
인덱스를 사용하면 Order by에 의한 정렬 과정을 피할 수 있다. 정렬작업은 1차적으로 메모리에서 정렬이 이루어지고 메모리보다 큰 작업이 필요하다면 디스크 I/O도 추가적으로 발생하기 때문에 부하가 많이 걸리는 작업이다
그러나, 인덱스를 사용하면 이미 정렬이 되어있기 때문에 정렬을 위한 추가적인 작업이 필요없다.
MIN, MAX 계산의 효율성