인덱싱 전략.
애플리케이션에 가장 적합한 인덱스를 결정할 때는 예상 쿼리 종류, 읽기와 쓰기의 비율, 시스템의 여유 메모리 용량 등을 여러 요소를 고려해야 합니다.
인덱싱 전략을 개발할 때는 애플리케이션의 쿼리를 숙지해야 합니다. 인덱스를 구축하기 전에 실행할 쿼리 유형을 파악하여 해당 필드를 참조하는 인덱스를 구축할 수 있습니다. 인덱스는 성능 비용을 수반하지만 대규모 데이터 세트에 대한 빈번한 쿼리의 비용 이상의 가치가 있습니다. 애플리케이션에서 각 쿼리의 상대적 빈도를 고려하고 해당 쿼리가 인덱스를 정당화하는지 여부를 고려하세요.
인덱스 설계를 위한 최적의 전략은 프로덕션 환경에서 실행할 데이터 세트와 유사한 데이터 세트로 다양한 인덱스 구성을 프로파일링하여 어떤 구성이 가장 잘 수행되는지 확인하는 것입니다. 컬렉션용으로 생성된 현재의 인덱스를 검사하여 현재 쿼리와 계획된 쿼리를 지원하는지 확인하세요. 인덱스가 더 이상 사용되지 않는 경우, 해당 인덱스를 삭제하세요.
일반적으로 MongoDB 는 대부분의 쿼리를 처리하기 위해 하나 의 인덱스 만 사용합니다. 그러나 $or
쿼리 의 각 절은 서로 다른 인덱스 를 사용할 수 있으며, 또한 MongoDB 는 여러 인덱스의 교집합 을 사용할 수 있습니다.
다음 문서에서는 인덱싱 전략을 소개합니다.
- ESR (Equality, Sort, Range) 규칙 사용
- ESR (Equality, Sort, Range) 규칙은 쿼리를 효율적으로 지원하는 인덱스를 생성하기 위한 가이드입니다.
- 쿼리를 지원하는 인덱스 생성
- 인덱스는 쿼리에 의해 스캔된 모든 필드를 포함하는 경우 쿼리를 지원합니다. 쿼리를 지원하는 인덱스를 생성하면 쿼리 성능이 크게 향상됩니다.
- 인덱스를 사용하여 쿼리 결과 정렬하기
- 효율적인 쿼리를 지원하려면 인덱스 필드의 순차적 순서와 정렬 순서를 지정할 때 해당 전략을 사용합니다.
- 쿼리 선택성을 보장하는 인덱스 만들기
- 선택성은 인덱스를 사용하여 검색 결과의 범위를 좁힐 수 있는 쿼리의 기능입니다. 선택성을 통해 MongoDB는 쿼리 수행과 관련된 작업의 더 많은 부분에 인덱스를 사용할 수 있습니다.