Docs Menu
Docs Home
/ / /
PyMongo
/

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

項目一覧

  • Overview
  • 圧縮アルゴリズムを指定する
  • zlib 圧縮レベルの設定

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

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

  1. Snappy : MongoDB3 6で利用可能です。 以降このオプションには Python-Snappyパッケージが必要です。

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

  3. Zstandard : MongoDB4 2で利用可能です。 以降。このオプションには zstandard パッケージ。

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

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)

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

戻る

トランスポート層セキュリティ (TLS) の構成