샤드 키는 단일 인덱싱된 필드 이거나, 클러스터의 샤드 간에 컬렉션의 문서 분포를 결정하는 복합 인덱스 로 커버되는 여러 필드입니다. 자세한 내용은 샤드 키 인덱스를 참조하세요.
MongoDB 샤드 키 값(또는 해시 샤드 키 값)의 범위를 겹치지 않는 범위로 나눕니다. 각 범위 청크 와 연결되며, MongoDB 클러스터 의 샤드 간에 청크를 균등하게 분배하려고 시도합니다.
Collection 샤드
mongosh 메서드 sh.shardCollection() 를 사용하여 컬렉션을 샤드 할 수 있습니다. 컬렉션 을 샤드 하려면 샤드 하려는 컬렉션 의 전체 네임스페이스 와 샤드 키 지정해야 합니다.
sh.shardCollection(<namespace>, <key>) // Optional parameters omitted
| 샤딩하려는 컬렉션의 전체 네임스페이스( |
|
샤딩 메서드에 대한 자세한 내용은 sh.shardCollection()를 참조하세요.
샤드 키 선택
샤드 키 의 선택은 사용 가능한 샤드 전체의 데이터 생성 및 배포에 영향을 줍니다. 이상적인 샤드 키 사용하면 MongoDB 클러스터 전체에 문서를 고르게 분산하는 동시에 일반적인 쿼리 패턴을 용이하게 할 수 있습니다.
자세한 내용은 샤드 키 선택 페이지를 참조하세요.
샤드 키 변경
두 가지 방법으로 샤드 키 변경할 수 있습니다.
기존 키에 필드를 추가하여 샤드 키 구체화 할 수 있습니다.
샤드 키를 완전히 변경하고 새 키로 컬렉션을 리샤딩 할 수 있습니다.
자세한 내용은 샤드 키 변경 페이지를 참조하세요.
document 샤드 키 필드 값 변경
샤드 키 필드 _id 필드 아닌 경우 컬렉션 의 모든 document 에서 샤드 키 필드 값을 변경할 수 있습니다. 이는 document 상주하는 샤드 에 영향을 미칠 수 있습니다.
자세한 내용은 문서의 샤드 키 값 변경을 참조하세요.
누락된 샤드 키 필드 설정
컬렉션 의 문서에 샤드 키 에 지정된 필드가 누락될 수 있습니다. 기본값 으로 샤드 키 에 지정된 필드가 누락된 문서는 null 값을 가진 샤드 키와 동일한 청크 범위 에 있습니다.
자세한 내용은 누락된 샤드 키 필드 설정을 참조하세요.
샤드 키 표시
db.printShardingStatus() 컬렉션 에 사용된 샤드 키 표시하려면 를 사용합니다.
자세한 내용은 샤드 키 표시를 참조하세요.
문제 해결
최적이 아닌 샤드 키 인해 발생하는 일반적인 문제는 다음과 같습니다.
Jumbo chunks
고르지 않은 부하 분산
쿼리 성능 저하
자세한 내용은 샤드 키 문제 해결을 참조하세요.