Day 47 · 1/5
🌿 중급 DB

복합 인덱스가 뭔가요?

쉽게 이해하기

책의 색인을 '저자+출판년도' 순으로 만들면, '저자'로만 찾을 때도 빠르고 '저자+출판년도'로 찾을 때는 더욱 빠릅니다. 하지만 '출판년도'만으로 찾을 때는 도움이 안 돼요. 복합 인덱스는 여러 조건을 동시에 고려해서 검색 속도를 높이는 방법입니다.

핵심 정리

여러 컬럼을 묶어서 만드는 인덱스로, 검색 조건이 여러 개일 때 성능을 높여줍니다.

자세히 알아보기

복합 인덱스(Composite Index)는 데이터베이스 테이블에서 두 개 이상의 컬럼을 묶어서 만드는 인덱스입니다. 단일 컬럼 인덱스가 하나의 조건으로 검색할 때 유용하다면, 복합 인덱스는 여러 조건을 동시에 사용하는 쿼리에서 성능을 크게 향상시킵니다. 실무에서는 검색 조건이 복합적인 경우가 많습니다. 예를 들어 쇼핑몰에서 '카테고리가 의류이면서 가격이 3만원 이하인 상품'을 찾는다면, category와 price 컬럼에 복합 인덱스를 만들면 빠르게 결과를 얻을 수 있습니다. 복합 인덱스는 컬럼 순서가 중요한데, 첫 번째 컬럼으로만 검색할 때도 인덱스를 활용할 수 있지만, 두 번째 컬럼으로만 검색하면 인덱스를 사용하지 못합니다. 복합 인덱스 설계 시에는 가장 자주 사용되고 선택도가 높은(다양한 값을 가진) 컬럼을 앞에 두는 것이 좋습니다. 또한 WHERE 절에서 자주 함께 사용되는 컬럼들을 묶어서 인덱스를 만들면 효과적입니다. 다만 인덱스가 많아질수록 INSERT, UPDATE 시 성능 저하가 있을 수 있으므로, 실제 쿼리 패턴을 분석해서 필요한 복합 인덱스만 만드는 것이 중요합니다.