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

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

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

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

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

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

ネットワーク圧縮には、生産性の向上というメリットもあります。メッセージを圧縮するとネットワーク経由の転送時間が短縮されるため、アプリケーションの応答時間が改善される可能性があります。圧縮によってMongoDBトラフィックが使用する帯域幅も削減されるため、同じネットワーク上の他のアプリケーションが使用できる帯域幅が増えます。

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

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

  • 計算オーバーヘッドを最小限に抑える必要があるレイテンシに敏感なアプリケーションには、Snappy を使用します。

  • MongoDBのドライバーや環境全体で幅広い互換性を確保するには、zlibを使用してください。

Tip

CPU 使用率をモニターする

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

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'],);

圧縮アルゴリズムの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,);

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

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