반응형
복합 인덱스를 설계할 때는 컬럼 순서와 사용 패턴을 고려하는 것이 핵심입니다. 잘못 설계하면 오히려 성능 저하를 초래할 수 있습니다.
다음은 복합 인덱스 설계 시 반드시 유의해야 할 주요 사항들입니다:
✅ 1. 컬럼 순서: 왼쪽 우선 원칙
- 복합 인덱스는 왼쪽부터 순차적으로만 활용됩니다.
- 예: (A, B, C) 인덱스는 A, (A, B), (A, B, C) 조건에서만 효율적입니다.
- B나 C만 사용하는 조건에서는 인덱스가 무시될 수 있습니다.
✅ 2. 조회 패턴 기반 설계
- WHERE, JOIN, ORDER BY, GROUP BY 절에서 자주 사용되는 컬럼을 기준으로 인덱스를 설계합니다.
- 자주 함께 조회되는 컬럼은 하나의 복합 인덱스로 묶는 것이 효율적입니다.
✅ 3. 카디널리티 고려
- **고유 값이 많은 컬럼(높은 카디널리티)**을 앞쪽에 배치하는 것이 일반적으로 유리합니다.
- 예: user_id > gender (남/여처럼 값이 적은 컬럼은 인덱스 효율이 낮음).
✅ 4. 업데이트 빈도 고려
- 자주 변경되는 컬럼은 인덱스에 포함시키는 것을 피하는 것이 좋습니다.
- 인덱스는 변경 시마다 갱신되므로 쓰기 성능에 악영향을 줄 수 있습니다.
✅ 5. 인덱스 수는 최소화
- 너무 많은 인덱스는 오히려 쓰기 성능 저하와 디스크 낭비를 초래합니다.
- 단일 인덱스 여러 개보다는 복합 인덱스 하나가 더 효율적일 수 있습니다.
✅ 6. 커버링 인덱스 활용
- SELECT 절에 포함된 컬럼까지 인덱스에 포함하면 테이블 접근 없이 인덱스만으로 결과를 반환할 수 있어 성능이 향상됩니다.
728x90
반응형
'IT > 개발자 면접' 카테고리의 다른 글
| 웹 서버 취약점 목록 및 요약 (0) | 2025.11.21 |
|---|---|
| java Overloading과 Overriding (0) | 2025.11.20 |
| 단일 서버에서 JWT를 피해야 하는 이유 (0) | 2025.11.19 |
| JWT 장점과 단점 (0) | 2025.11.18 |
| Controller 와 RestController 차이 (0) | 2025.11.17 |