애플리케이션 에 가장 적합한 인덱스는 예상하는 쿼리의 종류, 읽기 대 쓰기 비율, 시스템의 여유 메모리 양 등 여러 요인에 따라 달라집니다.
인덱스를 구축하기 전에 애플리케이션의 쿼리와 쿼리가 액세스 필드를 매핑합니다. 인덱스는 성능 비용 있지만 대규모 데이터 세트에 대한 빈번한 쿼리에는 그만한 가치가 있습니다. 각 쿼리 의 빈도와 이것이 인덱스 정당화하는지 여부를 고려합니다.
프로덕션을 대표하는 데이터와 비교하여 여러 인덱스 구성을 프로파일링하여 가장 성능이 뛰어난 인덱스 구성을 찾습니다. 기존 인덱스를 검사하여 현재 및 계획된 쿼리를 지원 하는지 확인합니다. 더 이상 사용하지 않는 인덱스를 삭제합니다.
일반적으로 MongoDB는 대부분의 쿼리를 처리하기 위해 하나의 인덱스만 사용합니다. 그러나 $or 쿼리의 각 절은 다른 인덱스를 사용할 수 있습니다.
다음 문서에서는 인덱싱 전략을 소개합니다.
- ESR(Equality, Sort, Range) 가이드 사용
- 복합 인덱스 키를 정렬하여 동등성, 정렬 및 범위 작업을 최적화합니다.
- 쿼리를 지원하는 인덱스 생성
- 인덱스 는 쿼리 스캔하는 모든 필드를 포함하는 경우 쿼리 지원하므로 성능이 크게 향상됩니다.
- 인덱스를 사용하여 쿼리 결과 정렬하기
- 이러한 전략을 사용하여 인덱스 필드 순서를 지정하고 효율적인 정렬 쿼리를 지원 .
- 쿼리에 효율적으로 답변할 수 있는 선택적 인덱스 생성하기
- 인덱스 선택성이 쿼리 성능에 어떤 영향을 미치는지 이해하고 쿼리에 효율적으로 답변 인덱스를 설계합니다.
- 고유 인덱스 및 스키마 유효성 검사
- 인덱스 속성과 스키마 유효성 검사 결합하여 애플리케이션 설계를 구현 .