🌿 중급 DB
데이터베이스 인덱스 전략
쉽게 이해하기
모든 단어에 형광펜을 칠하면 오히려 찾기 어려운 것처럼, 인덱스도 무분별하게 만들면 역효과예요. 자주 찾는 정보, 범위 검색하는 정보, 정렬 기준이 되는 정보에만 인덱스를 만들어야 효과적이에요.
핵심 정리
어떤 컬럼에 인덱스를 걸어야 효과적인지 결정하는 방법이에요.
자세히 알아보기
데이터베이스 인덱스 전략은 어떤 컬럼에 인덱스를 생성해야 쿼리 성능을 최적화할 수 있는지 판단하는 기술이에요.
인덱스를 만들면 조회 속도는 빨라지지만, 데이터를 추가하거나 수정할 때는 인덱스도 함께 업데이트해야 하므로 쓰기 성능이 떨어져요. 따라서 모든 컬럼에 인덱스를 만드는 건 좋지 않아요.
인덱스를 만들어야 하는 경우는 이렇게 판단해요. 첫째, WHERE 절에 자주 사용되는 컬럼. 둘째, JOIN 조건에 사용되는 컬럼. 셋째, ORDER BY나 GROUP BY에 사용되는 컬럼. 넷째, DISTINCT를 자주 사용하는 컬럼이에요.
반대로 인덱스를 만들지 말아야 하는 경우도 있어요. 데이터가 자주 변경되는 컬럼, 카디널리티(고유값의 비율)가 낮은 컬럼(예: 성별), 테이블 크기가 작은 경우는 인덱스 효과가 미미해요.
실무에서는 EXPLAIN 명령어로 쿼리 실행 계획을 확인하고, 슬로우 쿼리 로그를 분석해서 어떤 컬럼에 인덱스가 필요한지 판단해요. 무작정 만들기보다는 모니터링을 통해 필요한 곳에만 추가하는 게 중요해요.