Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

シャーディングされたクラスターで範囲を作成

項目一覧

  • 詳細

ほとんどの場合、 シャーディングされたクラスターは、ユーザーの介入なしに自動的に範囲の作成/分割と分散を行います。 ただし、限られた場合では、MongoDB では必要なスループットをサポートするのに十分な範囲を作成したり、十分な速度でデータを分散したりできない場合があります。

注意

MongoDB 6.0以降では、空の範囲を作成して範囲を事前に分割し、 バランサー に範囲を自動的に分散させることはできません。 代わりに、次のいずれかを行います。

たとえば、バランスが取れていないクラスターに大量のデータを取り込む場合、またはシャードキーが単調に増加したり減少したりしているなど、データの取り込みによってデータの不均衡が生じるクラスターに大量のデータを取り込む場合。 空のシャーディングされたコレクションの範囲を事前に分割すると、このような場合のスループットが向上します。

あるいは、空のコレクションまたは存在しないコレクションをシャーディングする 前に ゾーンとゾーンの範囲 を定義することで、シャード コレクション操作は定義されたゾーン範囲の範囲と、シャードキー値の全範囲をカバーする追加の範囲を作成し、ゾーン範囲に基づく初期範囲分散。For more information, see Empty Collection.

警告

空のコレクションの範囲のみを事前分割します。 入力されるコレクションの範囲を手動で分割すると、予測できない範囲とサイズだけでなく、バランシング動作が非効率的または非効果的になる可能性があります。

空の範囲を手動で分割するには、 splitコマンドを実行します。

emailフィールドをシャードキーとして使用してmyapp.usersコレクション内のドキュメントの範囲を作成するには、 mongoshで次の操作を使用します。

for ( var x=97; x<97+26; x++ ){
for ( var y=97; y<97+26; y+=6 ) {
var prefix = String.fromCharCode(x) + String.fromCharCode(y);
db.adminCommand( { split: "myapp.users", middle: { email : prefix } } );
}
}

これには、コレクション サイズで100万ドキュメントが前提されています。

戻る

データのパーティショニング

項目一覧