AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ネットワーク トラフィックを圧縮

MongoDBドライバーは、 MongoDB Serverとの間で送受信されるメッセージを圧縮できます。これにより、各操作で転送されるデータ量が減ります。圧縮により、制約されたネットワークのパフォーマンスが向上し、 MongoDB Atlas の実行中に関連するデータ転送コストが削減されます。

圧縮はワイヤプロトコルレベルで動作するため、アプリケーションが実行するすべての操作に適用されます。複数のアルゴリズムを指定した場合 、ドライバーはMongoDB Serverもサポートしているリスト内の最初のアルゴリズムを使用します。

MongoDBドライバーは次の圧縮アルゴリズムをサポートしています。

MongoDB Atlas は、クラウドリージョン、クラウドプロバイダー、および インフラストラクチャとMongoDB Atlas間で転送されたデータに対して料金を請求します。ネットワーク圧縮により、アプリケーションが送受信するデータ量が減り、これらのデータ転送コストを削減できます。価格の詳細については、「 データ転送コスト 」を参照してください。

ネットワーク圧縮には、効率的な利点も得られます。圧縮されたメッセージはネットワーク間での転送時間が短縮されるため、アプリケーションの応答時間を向上させることができます。圧縮により、 MongoDBトラフィックが使用する帯域幅も削減されるため、同じネットワーク上の他のアプリケーションで使用できる帯域幅が増えます。

圧縮アルゴリズムを選択する場合は、次のガイドラインを考慮してください。

  • 圧縮効率とリソース使用量のバランスを取るには、Zstandard を使用します。 Zstandard は、ほとんどのアプリケーションでのデフォルトの選択に適しています。

  • 最小限の計算オーバーヘッドを必要とするレイテンシの影響を受けやすいアプリケーションには、 Snappy を使用してください。

  • MongoDBドライバーと環境間での広範な互換性を実現するには、Zlib を使用してください。

Tip

CPU 使用率の監視

圧縮により、ネットワーク帯域幅とCPU使用量のトレードオフが発生します。ネットワーク圧縮を有効にした後は、トレードオフがワークロードにメリットがあることを確認するため、アプリケーションのCPU使用率をモニターします。これらのトレードオフの詳細については、CPU Utilization and Network 圧縮 in MongoDB ブログ記事を参照してください。

PHPライブラリは、ネットワーク トラフィックを圧縮するためにPHP拡張機能を使用します。次の表は、各圧縮アルゴリズムに必要な最小PHP拡張機能とMongoDB Serverバージョンを示しています。

圧縮アルゴリズム
拡張機能の最小バージョン
サーバーの最小バージョン

1.4.0

4.2

1.4.0

4.2

1.8.0

4.2

MongoDB接続のネットワーク圧縮を有効にするには、必要な依存関係をインストールし、使用する圧縮アルゴリズムを指定します。

PHP拡張機能ではMongoDB Cドライバーを使用してネットワーク圧縮を実装するため、 Cドライバーに必要な依存関係をインストールする必要があります。これらの依存関係を表示するには、 Cドライバーのドキュメントの「 依存関係のインストール 」を参照してください。

MongoDBデプロイへの接続の圧縮を有効にするには、compressors 接続オプションを使用して、使用する圧縮アルゴリズムを指定します。これは、次の 2 つの方法で行うことができます。

  • アルゴリズムを引数としてMongoDB\Clientコンストラクターに渡します。

  • 接続stringでアルゴリズムを指定します。

次の例は、接続のコンプレッサーとして Snappy、zlib、Zstandard を指定する方法を示しています。 対応するコードを表示するには、MongoDB\Client タブまたは Connection URIタブを選択します。

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['compressors' => 'snappy,zstd,zlib'],
);
$uri = 'mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib';
$client = new MongoDB\Client($uri);

圧縮アルゴリズムの 1 つとして Zlib を指定する場合は、zlibCompressionLevel オプションを使用して圧縮レベルを指定することもできます。このオプションは、-1 から 9 までの整数値を受け入れます。

  • - 1 :(デフォルト)。 zlib はデフォルトの圧縮レベル(通常は6 )を使用します。

  • 0 :圧縮なし。

  • 1 :速度は最も速く、圧縮は最小です。

  • 9 :圧縮に最適ですが、速度は最も遅くなります。

次の例では、zlib 圧縮アルゴリズムと zlibCompressionLevel の値を 1 に指定しています。対応するコードを表示するには、MongoDB\Client タブまたは Connection URIタブを選択します。

$uriOptions = [
'compressors' => 'zlib',
'zlibCompressionLevel' => 1,
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<hostname>:<port>/?compressors=zlib&zlibCompressionLevel=1';
$client = new MongoDB\Client($uri);

MongoDB\Clientクラスの詳細については、ライブラリAPIドキュメントのMongoDB\Clientを参照してください。

MongoDB\Client に渡すことができる URI オプションの完全なリストを表示するには、拡張APIドキュメントのMongoDB\Driver\Manager::__construct パラメーターを参照してください。