문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

샤드 키 문제 해결

이 페이지의 내용

  • 점보 청크
  • 고르지 않은 부하 분산
  • 시간 경과에 따른 쿼리 성능 저하

이상적인 샤드 키를 사용하면 MongoDB가 클러스터 전체에 문서를 고르게 분산하는 동시에 일반적인 쿼리 패턴을 용이하게 할 수 있습니다. 최적이 아닌 샤드 키를 사용하면 다음과 같은 문제가 발생할 수 있습니다.

  • 점보 청크

  • 고르지 않은 부하 분산

  • 시간 경과에 따른 쿼리 성능 저하

다음에서는 샤드 키의 일반적인 문제와 해결 방법에 대해 자세히 알아볼 수 있습니다.

점보 청크 가 표시되는 경우, 샤드 키의 카디널리티 가 충분하지 않거나 샤드 키 값의 빈도 가 고르지 않게 분산되어 있기 때문입니다.

샤드 키의 카디널리티를 늘리거나 샤드 키 값의 분포를 변경하려면 다음을 수행합니다.

컬렉션을 리샤딩해야 하는지 또는 샤드 키를 세분화해야 하는지 알아보려면 샤드 키 변경을 참조하세요.

샤드 키 값의 분포만 변경하려면 해시 샤딩 을 사용하여 데이터를 보다 균등하게 분산하는 것을 고려할 수도 있습니다.

샤드 키 선택에 대한 조언은 샤드 키 선택을 참조하세요.

클러스터의 부하 분산이 고르지 않은 경우 샤드 키가 단조롭게 증가하는지 확인합니다. 단조롭게 증가하는 필드인 샤드 키는 읽기 및 쓰기 분포가 고르지 않게 만듭니다.

orders collection 필드에 샤딩된 컬렉션을 가정해 order_id 보겠습니다. order_id 는 차수가 1씩 증가하는 정수입니다.

  • 새 문서는 일반적으로 동일한 샤드와 청크에 기록됩니다. 쓰기를 수신하는 샤드와 청크를 샤드 및 청크라고 합니다. 샤드는 시간이 지남에 따라 변경됩니다. 청크가 분할되면 핫 청크는 데이터 분산을 최적화하기 위해 다른 샤드로 이동합니다.

  • 사용자가 모두 동일한 샤드에 있는 최근 주문과 상호 작용할 가능성이 더 높으면 최근 주문이 포함된 샤드가 대부분의 트래픽을 수신합니다.

단조롭게 증가하는 샤드 키가 있는 경우 컬렉션 을 리샤딩하는 것이 좋습니다. 샤드 키 선택에 대한 조언은 샤드 키 선택을 참조하세요.

데이터 모델에 단조롭게 변경되는 키에 대한 샤딩이 필요한 경우, 해시 샤딩을사용하는 것이 좋습니다.

시간이 지남에 따라 쿼리 성능이 저하되는 경우 클러스터가 분산 수집 쿼리를 수행하고 있을 수 있습니다.

클러스터가 분산 수집 쿼리를 수행하고 있는지 평가하려면 가장 일반적인 쿼리에 샤드 키가 포함되어 있는지 확인하세요.

쿼리에 샤드 키를 포함하는 경우 샤드 키가 해시되었는지 확인합니다. 해시 샤딩 을 사용하면 문서가 샤드 키 필드 값의 오름차순 또는 내림차순으로 저장되지 않습니다. 오름차순 또는 내림차순으로 저장되지 않은 데이터의 샤드 키 값에 대해 범위 기반 쿼리를 수행하면 분산 수집 쿼리 성능이 저하됩니다. 샤드 키에 대한 범위 기반 쿼리가 일반적인 액세스 패턴인 경우 컬렉션을 리샤딩하는 것이 좋습니다.

가장 일반적인 쿼리에 샤드 키를 포함하지 않는 경우 컬렉션을 리샤딩하여 성능을 향상시킬 수 있습니다. 샤드 키 선택에 대한 조언은 샤드 키 선택을 참조하세요.

← 샤드 키 찾기