문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

범위 지정된 샤딩

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

더 작은 범위 또는 청크로 분할된 샤드 키 값 공간의 다이어그램.

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

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

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

바람직한 샤드 키 분배 다이어그램
클릭하여 확대

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

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

중요

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

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

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

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

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

  • 비어 있거나 존재하지 않는 컬렉션에 구역 및 구역 범위를 지정한 경우(MongoDB 4.0.3부터 사용 가능),

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

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

다음도 참조하세요.

샤드 클러스터를 배포하고 범위 지정 샤딩을 구현하는 방법을 알아보려면 샤드 클러스터 배포를 참조하세요.

← 해시 샤딩