[sql] 복합 인덱스 사용 시 주의사항

복합 인덱스는 두 개 이상의 열을 함께 인덱싱하여 검색 성능을 향상시킬 수 있는 방법입니다. 하지만 복합 인덱스를 사용할 때에는 몇 가지 주의사항이 있습니다. 이번 포스트에서는 복합 인덱스 사용 시 주의사항에 대해 알아보겠습니다.

1. 인덱스의 순서

복합 인덱스를 생성할 때 인덱스의 열 순서는 매우 중요합니다. 인덱스를 사용한 검색은 인덱스의 첫 번째 열부터 시작합니다. 따라서 가장 선택도가 높은 열을 첫 번째로 지정하는 것이 성능 향상에 도움이 됩니다.

예를 들어, (name, age)라는 복합 인덱스를 생성한 경우, name으로 검색하는 쿼리는 인덱스를 사용할 수 있지만, age로만 검색하는 쿼리는 인덱스를 사용할 수 없게 됩니다. 따라서, 가장 빈번하게 사용되는 열을 첫 번째로 지정하여 복합 인덱스를 생성해야 합니다.

2. 인덱스 컬럼의 크기

복합 인덱스에서 인덱스를 구성하는 각 열의 데이터 크기도 고려해야 합니다. 보통 인덱스는 메모리에 로드되므로, 인덱스 크기가 작을수록 메모리 사용량이 줄어들어 성능 향상에 도움이 됩니다.

따라서, 가능하다면 인덱스 컬럼의 크기를 최소화하여 복합 인덱스를 생성하는 것이 좋습니다.

3. 통계 정보 갱신

복합 인덱스를 사용하여 쿼리를 실행할 때, 데이터베이스는 통계 정보를 참고하여 최적의 실행 계획을 수립합니다. 하지만 복합 인덱스를 사용할 경우, 통계 정보가 필요한 모든 조합에 대해 갱신이 이루어져야 합니다.

따라서, 복합 인덱스를 사용할 때는 통계 정보를 주기적으로 갱신하는 것이 중요합니다. 이를 통해 최신의 통계 정보를 유지하여 쿼리 실행 계획의 최적화를 도모할 수 있습니다.

4. 인덱스의 크기와 성능

복합 인덱스는 여러 열을 포함하기 때문에 단일 열 인덱스보다 크기가 커질 수 있습니다. 이로 인해 디스크 I/O 작업이 더 많이 발생할 수 있으며, 인덱스의 업데이트 시간도 증가할 수 있습니다.

따라서, 복합 인덱스를 사용할 때는 인덱스 크기와 성능 사이의 트레이드 오프를 고려해야 합니다. 필요한 열만 포함하여 최대한 크기를 줄이도록 설계하는 것이 좋습니다.

참고 자료