인덱스는 데이터베이스에서의 검색 속도를 향상시켜줍니다.
트리구조로 되어있으며 정렬되어있기 때문에 테이블 전체를 풀 스캔 할 필요없이 인덱스를 통해 원하는 데이터에 접근 가능합니다.
인덱스를 많이 설정하게 된다면 속도 향상 대비 업데이트 성능이 떨어지며 CUD 성능에 영향을 주게 됩니다.
카디널리티가 높은 칼럼을 기준으로 설정합니다.
카디널리티란 중복도로 중복도가 낮으면 카디널리티가 “높다” 라고 표현합니다.
예시로는 주민번호, id 등이 있습니다.
인덱스는 단일 칼럼에만 적용되는 것이 아니라 여러 칼럼에 걸쳐 적용될 수 있습니다.
B- Tree 구조를 사용합니다.
데이터베이스는 인덱스를 사용하여 데이터를 검색할 때 인덱스의 첫 번째 컬럼부터 순차적으로 검색하게 됩니다. (인덱스 컬럼 순서와 조회 순서를 맞춰야 함)
그러므로 조인 연산이나 복합한 쿼리에서 성능 향상이 뛰어납니다.
where 절에 있는 칼럼을 기준으로 생성하는 것이 효과적입니다.
쿼리의 필터링 조건에 따라 인덱스를 통한 데이터 검색이 최적화 됩니다.
다중 인덱스를 사용할 때 범위 조건은 인덱스를 타지만 이후 컬럼들은 인덱스를 타지 않습니다.
인덱스로 지정한 컬럼은 그대로 사용해야 합니다. (연산 불가)