定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { configureCollectionBalancing: "<db>.<collection>", chunkSize: <num>, defragmentCollection: <bool> } )
コマンドフィールド
configureCollectionBalancing には、次のフィールドがあります。
フィールド | タイプ | 説明 |
|---|---|---|
| string | 必須: 構成するデータベースとシャーディングされたコレクションの名前。 |
| integer | 任意: コレクションのチャンク サイズを MiB 単位で設定します。 推奨サイズは 256、512、またはそれ以上です。 |
| ブール値 | 任意: バランサーにコレクションをデフラグします。 |
詳細については、「チャンクを使用したデータのパーティショニング 」を参照してください。
動作
コレクション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 } )