移動可能なコレクション
バージョン8.0の新機能。
MongoDB 8.0以降では、 moveCollection
コマンドを使用して、シャーディングされていないコレクションを別のシャードに移動できます。
ユースケース
シャーディングされていないコレクションを任意のシャードに移動すると、次のことが可能になります。
大規模で複雑なワークロードのパフォーマンスを最適化します。
リソース使用率の向上を実現します。
シャード間でデータをより均等に分散します。
次のシナリオを検討してみましょう。
ある会社が、
products
、orders
、users
などのシャーディングされていないコレクションをいくつか含むeコマースプラットフォームを単一のシャードで実行しています。orders
コレクションは他のコレクションよりも大幅に大きくなり始めるため、シャードのパフォーマンスの問題が発生します。 クラスター全体のパフォーマンスを向上させ、負荷を分散するために、管理者はmoveCollection
コマンドを使用して、より小さいproducts
とusers
コレクションを別のシャードに移動できます。グローバルアプリケーションは、1 つのシャード上の正常に実行されないようにすべてのユーザーのシャーディングされていないコレクションにユーザー データを保存します。 ユーザーのレイテンシを軽減するために、管理者はこれらのコレクションを同じクラスター内の各リージョンにあるシャードに移動できます。
アプリケーションは、異なるシャードにあるシャーディングされていないコレクション(
orders
とcustomers
)間で頻繁に$lookup
操作を実行します。 クエリのパフォーマンスを向上させるために、データベース管理者は両方のコレクションを同じシャードに移動できます。
はじめる
アクセス制御
認証が強制される配置でシャーディングされていないコレクションを移動するには、少なくともenableSharding
ロールを持つユーザーとして認証する必要があります。