Docs Menu

범위 지정된 샤딩

범위 기반 샤딩에는 샤드 키 값에 따라 결정되는 연속 범위로 데이터를 나누는 작업이 포함됩니다. 이 모델에서 'close' 샤드 키 값을 가진 문서는 동일한 청크 또는 샤드에 있을 가능성이 높습니다. 이를 통해 연속 범위 내의 대상 문서를 읽는 효율적인 쿼리가 가능합니다. 그러나 샤드 키 선택이 잘못되면 읽기 및 쓰기 성능이 모두 저하될 수 있습니다. 샤드 키 선택을 참조하세요.

Diagram of the shard key value space segmented into smaller ranges or chunks.

범위 기반 샤딩은 해시 샤딩 또는 구역에 필요한 옵션과 같은 다른 옵션이 구성되지 않은 경우 기본 샤딩 방법입니다.

범위 지정 샤딩은 샤드 키가 다음 특성을 표시할 때 가장 효율적입니다.

다음 이미지는 X 필드를 샤드 키로 사용하는 샤딩된 클러스터를 보여줍니다. X 값이 범위가 넓고 빈도가 낮으며 단조롭지 않은 속도로 변하는 경우 삽입 분포는 다음과 유사하게 나타날 수 있습니다.

Diagram of good shard key distribution
클릭하여 확대

sh.shardCollection() 메서드를 사용하여 컬렉션의 전체 네임스페이스와 샤드 키로 사용할 대상 인덱스 또는 복합 인덱스를 지정합니다.

sh.shardCollection( "database.collection", { <shard key> } )

중요

채워진 컬렉션을 샤딩하면 처음에는 하나의 청크만 생성됩니다. 그런 다음 밸런서는 필요한 경우 구성된 범위 크기에 따라 해당 청크의 범위를 마이그레이션합니다.

빈 컬렉션을 샤딩하는 경우:

  • 비어 있거나 존재하지 않는 컬렉션에 대해 지정된 영역 및 영역 범위가 없는 경우:

    • 샤딩 작업은 샤드 키 값의 전체 범위를 포괄하는 빈 단일 청크를 생성합니다.

    • 초기 청크 생성 후, 밸런서는 초기 청크를 샤드 간에 적절히 마이그레이션하고 향후 청크 분산을 관리합니다.

  • 비어 있거나 존재하지 않는 컬렉션에 대해 구역 및 구역 범위가 지정된 경우:

    • 샤딩 작업은 정의된 영역 범위에 대해 빈 청크를 생성하고 샤드 키 값의 전체 범위를 포함하는 추가 청크를 생성하고, 영역 범위에 기반하여 초기 청크 분배를 수행합니다. 이러한 청크의 초기 생성 및 배포는 영역별 샤딩의 빠른 설정을 가능하게 합니다.

    • 초기 분배 이후에는 밸런서가 앞으로의 청크 분배를 관리합니다.

다음도 참조하세요.

샤딩된 클러스터 를 배포 하고 범위 지정 지정 샤딩 을 구현 하는 방법을 학습 보려면 자체 관리형 샤드 클러스터 배포를 참조하세요.