무엇을 찾아보기 위하여 만든 낱말 표, 색인 (목차 등)
DB에선 검색 성능을 향상시키기 위해 인덱스를 사용한다.
인덱스는 B Tree로 이루어져 있다.
Index를 사용하게 되면 테이블이 정렬되어 Full Table Scan을 할 필요 없이 조건에 맞는 데이터들을 찾아낼 수 있다.
반면에 Index는 정렬된 상태를 유지시켜야 하기 때문에 SELECT문을 제외한 INSERT, UPDATE, DELETE문이 일어나면 재정렬을 해주어야 하기 때문에 수정문이 많은 경우 오히려 성능에 악영향을 끼치게 된다.
인덱스를 생성할 때 고려할 점으로 INSERT, UPDATE, DELETE와 SELECT절의 비율을 비교하여 적절히 사용해야 한다.
인덱스를 적용할 때 카디널리티가 높고, 검색시 자주 사용하는 컬럼에 적용하자.
인덱스 종류는 크게 두가지로 나뉜다.
실제 데이터를 정렬한 인덱스로 테이블당 한개만 생성할 수 있다. (pk적용시 자동 생성)
실제 데이터와 다른 별도의 무리를 뜻한다. ex)책의 목차 (unique적용시 자동생성)
참고