configureCollectionBalancing
定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、 「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { configureCollectionBalancing: "<db>.<collection>", chunkSize: <num>, defragmentCollection: <bool> } )
コマンドフィールド
configureCollectionBalancing
には、次のフィールドがあります。
フィールド | タイプ | 説明 |
---|---|---|
configureCollectionBalancing | string | 必須: 構成するデータベースとシャーディングされたコレクションの名前。 |
chunkSize | integer | 任意: コレクションのチャンク サイズを MiB 単位で設定します。 推奨サイズは 256、512、またはそれ以上です。 |
defragmentCollection | ブール値 | 任意: バランサーにコレクションをデフラグします。 |
詳細については、「チャンクを使用したデータのパーティショニング 」を参照してください。
動作
コレクションchunkSize
が指定されていない
コレクションにchunkSize
を指定せず、過去にカスタム サイズが設定されていない場合、グローバルのデフォルトchunkSize
がバランシングに使用されます。
を指定する chunkSize: 0
configureCollectionBalancing
をchunkSize: 0
と併用すると、コレクションごとのchunkSize
がリセットされ、グローバルのデフォルトchunkSize
がバランシングに使用されます。
デフォルトのchunkSize
の構成の詳細については、「シャーディングされたクラスターの範囲サイズの変更 」を参照してください。
例
チャンク サイズの設定
シャーディングされたコレクションのチャンク サイズを変更するには、 chunkSize
オプションを使用します。
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 256 } )
特定のコレクションのチャンク サイズを変更するには、次のコマンドを使用します。
警告
デフォルトでは、チャンク内のドキュメント数が、構成されたチャンク サイズを平均ドキュメント サイズで割った結果の2倍を超える場合、MongoDB はチャンクを移動できません。
平均ドキュメントサイズを見つけるには、 db.collection.stats()
メソッドの出力のavgObjSize
フィールドを参照してください。
詳細については、「範囲サイズ 」を参照してください。
コレクションのデフラグ
警告
MongoDB 6.0.0 から 6.0.3 および MongoDB 6.1.0 のシャーディングされたコレクションのデフラグには、 defragmentCollection
を使用することは推奨しません。 を 6.1.1 に設定し、 これらのリリースのデフラグ プロセスにより、データベースとコレクションが長期間にわたって使用できなくなる可能性があるためです。
シャーディングされたコレクションをデフラグするようにバランサーに指示するには、 defragmentCollection
オプションを使用します。
db.adminCommand( { configureCollectionBalancing: "test.students", defragmentCollection: true } )
このコマンドを使用して、バランサーにシャーディングされたコレクションをデフラグします。 チャンクのデフラグ プロセスをモニターするには、 balancerCollectionStatus
コマンドを使用します。
コレクションの再構成とデフラグ
チャンク サイズを更新中にシャーディングされたコレクションをデフラグするには、 defragmentCollection
オプションとchunkSize
オプションを併用します。
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 512, defragmentCollection: true } )