인덱스(Index)란?
- 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조
- 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조(Index)를 생성하여 빠르게 조회할 수 있도록 한다.
- 책에서 빠르게 정보를 찾기 위해 카테고리를 목차에서 찾고 목차에 있는 페이지 번호를 보고 찾아가는 것을 생각하면 된다.

인덱스(Index)의 장점
- 인덱스 활용의 가장 큰 특징은 데이터들이 정렬 되어있기 때문에 빠른 검색에 있어서 장점이다.
- 또한 전반적인 시스템의 부하를 줄일 수 있다.
- 인덱스를 사용하지 않은 컬럼을 조회해야 하는 상황이라면 전체를 탐색하는 Full Scan을 수행한다. Full Scan은 전체를 비교하여 탐색하기 때문에 처리 속도가 떨어진다.
- 데이터를 조회하는 SELECT절 외에도 UPDATE절이나 DELETE절의 성능이 함께 향상된다.
- 이유는 해당 연산을 수행하려면 해당 대상을 조회해야 작업을 수행할 수 있기 때문이다.
조건 검색(Where) 절의 효율성
- 테이블을 만들고 안에 데이터가 쌓이게 되면 테이블의 레코드는 내부적으로 순서가 없이 뒤죽박죽으로 저장된다.
- 이렇게 되면 where절의 특정 조건에 맞는 데이터들을 찾아낼 때도 레코드의 처음부터 끝까지(Full Scan)을 수행한다.
- 하지만 인덱스를 사용하면 데이터들이 정렬되어 저장되어 있기 때문에 해당 조건(Where)에 맞는 데이터들을 빠르게 찾아낼 수 있다.
정렬(Order by) 절의 효율성
- 인덱스(Index)를 사용하면 Order by에 의한 Sort과정을 피할 수 있다.
- Order by는 굉장히 부하가 많이 걸리는 작업이다.