인덱스의 목적

RDMS에서 검색 속도를 높이기 위해 테이블의 Column을 색인화하는 방식!

예시로 알아보기

서점에 아래와 같이 진열된 책들의 이름, 카테고리, 위치를 저장한 테이블이다.

스크린샷 2023-06-18 오후 4.40.58.png

어떤 사람이 카테고리가 java인 책을 모두 구매하려한다.

이때, 책들을 찾기 위해 이름과 위치를 전부 찾으려 아래와 같이 쿼리를 작성했다.

SELECT name, location
  FROM book_store
 WHERE category = 'java';

현재는 인덱스가 없기 때문에, 10000개의 데이터를 모두 뒤져서 결과를 찾았을 것이다. → Full Scan

카테고리를 기준으로 찾고 있으니, 카테고리를 기준으로 인덱스를 정렬해보자.

임의로 만든 catogory_index 테이블은 아래와 같다.