Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Pymongo ドライバー
/ /

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

PyMongo は、メッセージを圧縮するための接続オプションを提供し、 MongoDBとアプリケーションの間でネットワークを介して渡されるデータ量を減らします。

PyMongo は次の圧縮アルゴリズムをサポートしています。

  1. Snappy : このオプションには Python-Snappyパッケージが必要です。

  2. zlib : このオプションにはPython v1 の標準ライブラリに含まれる zlib モジュールが必要です。5以降に更新します。

  3. Zstandard : このオプションには zstandardパッケージが必要です。

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

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

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

次のコード例には、両方のオプションが表示されています。

client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>",
compressors = "snappy,zstd,zlib")
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"compressors=snappy,zstd,zlib")
client = pymongo.MongoClient(uri)

圧縮アルゴリズムを指定しない場合、PyMongo はネットワーク トラフィックを圧縮しません。 複数の圧縮アルゴリズムを指定した場合、ドライバーは MongoDB インスタンスでサポートされているリスト内の最初の 1 つを選択します。

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

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

  • 0 :圧縮なし。

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

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

次のコード例では、 zlib圧縮アルゴリズムと、 zlibCompressionLevelオプションに1の値を指定しています。

client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>",
compressors = "zlib",
zlibCompressionLevel=1)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"compressors=zlib"
"zlibCompressionLevel=1")
client = pymongo.MongoClient(uri)

このガイドで説明したメソッドやタイプの詳細については、 MongoClient APIドキュメント を参照してください。

戻る

接続オプションの指定

項目一覧