Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

シャードキー

シャードキーは、単一のインデックス付き フィールド 、またはクラスターの シャード 間でのコレクションの documents の分散を決定する 複合インデックス でカバーされる複数のフィールドのいずれかです。詳細については、シャードキー インデックス を参照してください。

MongoDB は、シャードキー値(またはハッシュされたシャードキー値) の範囲を重複しない範囲に分割します。各範囲はチャンクに関連付けられており、 MongoDB はチャンクをクラスター内のシャードに均等に分散しようとします。

より小さな範囲またはチャンクに分割されたシャードキー値空間の図。

mongosh メソッドsh.shardCollection() を使用してコレクションをシャーディングできます。コレクションをシャーディングするには 、シャーディングするコレクションの完全な名前空間とシャードキーを指定する必要があります。

sh.shardCollection(<namespace>, <key>) // Optional parameters omitted

namespace

シャーディングするコレクションの完全な名前空間を指定します( "<database>.<collection>" )。

key

ドキュメント{ <shard key field1>: <1|"hashed">, ... }を指定します

シャーディング方法の詳細については、 sh.shardCollection()を参照してください。

シャードキーの選択は、使用可能なシャード全体にわたるデータの作成と分散に影響します。理想的なシャードキーを使用すると、 MongoDB は一般的なクエリパターンを容易にしながら、クラスター全体にドキュメントを均等に分散できます。

詳細については、「シャードキーの選択」ページを参照してください。

シャードキーは、次の 2 つの方法で変更できます。

詳細については、「シャードキーの変更」ページを参照してください。

シャードキーフィールドが_idフィールドでない限り、コレクション内の任意のdocumentでシャードキーフィールドの値を変更できます。これは、documentがどのシャードに存在するかに影響する可能性があります。

詳細については、「 documentのシャードキー値の変更 」を参照してください。

コレクション内のドキュメントには、シャードキーで指定される欠落フィールドがある場合があります。デフォルトでは 、シャードキーで指定されたフィールドが欠落しているドキュメントは、null 値を持つシャードキーと同じチャンク範囲内に存在します。

詳細については、「欠落しているシャードキー フィールドの設定」を参照してください。

db.printShardingStatus()コレクションに使用されるシャードキーを表示するには、 を使用します。

詳細については、シャードキーの表示を参照してください。

シャードキーが最適でないことによって発生する一般的な問題は次のとおりです。

  • Jumbo chunks

  • 不均一な負荷分散

  • クエリ パフォーマンスの低下

詳しくは、シャードキーのトラブルシューティング を参照してください。

戻る

ルーター(mongos)

ルール バッジを取得する

「シャーディング戦略」を無料でマスターします。

詳細

項目一覧