본문 바로가기
Infra/MongoDB

MongoDB - (6) - 인덱싱2

by Inventer 2023. 4. 22.

MongoDB에서는 무조건 인덱싱을 사용하는 것은 옳지 않다.

 

데이터의 일부를 조회할 때 가장 효율적이며 어떤 쿼리는 인덱스가 없는게 더 빠르다.

인덱스는 컬렉션에서 가져와야 하는 부분이 많을 수록 비효율 적이다.

왜냐면 인덱스를 하나 사용하려면 두 번의 조회를 해야하기 때문이다.

 

 

아쉽게도 인덱스가 도움이 될지 혹은 방해가 될지 알 수 있는 공식은 없다.

  • 실제 데이터 크기
  • 인덱스 크기
  • 도큐먼트 크기
  • 결과 셋 평균 크기

에 따라 다르기 때문이다.

 

쿼리의 30% 이상을 반환하는 경우 인덱스는 종종 쿼리 속도를 높인다.

하지만 이 수치는 2% ~ 60% 까지 다양한 양상을 띈다.

 

인덱스가 적합한 경우

  • 큰 컬렉션
  • 큰 도큐먼트
  • 선택적 쿼리

컬랙션 스캔이 적합한 경우

  • 작은 컬렉션
  • 작은 도큐먼트
  • 비선택적 쿼리

인덱스는 각 컬렉션 당 1회 사용가능하다.

또한 변경하고자 하는 경우 dropIndex를 통해 불필요한 인덱스를 제거할 수 있다.

 

 

'Infra > MongoDB' 카테고리의 다른 글

MongoDB - (8) - 트랜잭션  (0) 2023.04.22
MongoDB - (7) - 집계 프레임워크  (0) 2023.04.22
MongoDB - (5) - 인덱싱  (0) 2023.04.21
MongoDB - (4) - 쿼리  (0) 2023.04.20
MongoDB - (3) - CRUD 실습  (0) 2023.04.19

댓글