eatthefrog

MongoDB Compass indexes 본문

백엔드 노트

MongoDB Compass indexes

eater_forg 2025. 11. 11. 13:12

 

 

 

 

 

 

 

인덱스란?

검색 속도를 빠르게 하기 위한 정렬된 목차 같은 것으로 참조와는 별개다. 

출처: MongoDB

 

 

 

 

 

실제 사용 시나리오

// 개발자: 샘플 데이터 중에서 (여성, 30세, 멤버십 active) 리스트를 검색해줘
db.smaple.find({
	gender: "woman"
	age: 30
	memebrship_status: "ACTIVE"
})

선택 옵션이 적은 순서로 배치하면 검색이 가장 효율적이다.!

성별 -> 나이 -> memership_status

  • 성별은 2개
  • 나이는 100이하
  • 멤버십 상태는 제한적 (5개 이하)

 

개선된 복합 인덱스 : 성별 -> memebrship_status -> 나이

 

인덱스 사용 팁

복합 인덱스의 경우, 쿼리 할 때 왼쪽 필드부터 순서대로 사용해야 효율적이다. 예를 들어 예를 들어 gender만 쿼리하거나 gneder + age로 쿼리하면 이 인덱스를 활용할 수 있지만, membership_status만 단독으로 쿼리하면 인덱스를 제대로 활용할 수 없다.

왜냐하면 인덱스는 왼쪽부터 순서대로 책의 목차쳐럼 동작하기 때문에, 중간 필드나 마지막 필들드를 사용하여 쿼리(검색)하면 전체 스캔을 하게때문에 검색 속도가 느려진다.