Docs Menu
Docs Home
/ /

Comprimir el tráfico de la red

PyMongo proporciona opciones de conexión para comprimir mensajes, lo que reduce la cantidad de datos que pasan por la red entre MongoDB y su aplicación.

PyMongo admite los siguientes algoritmos de compresión:

  1. Snappy: Esta opción requiere el paquete python-snappy.

  2. Zlib: esta opción requiere el módulo zlib, incluido en la biblioteca estándar en Python1 v.5 y posteriores.

  3. Zstandard: esta opción requiere el paquete zstandard.

Para habilitar la compresión para la conexión a su instancia de MongoDB, utilice el compressors Opción de conexión y especifique los algoritmos de compresión que desea utilizar. Puede hacerlo de dos maneras:

  • Pase los algoritmos como argumento al constructor MongoClient.

  • Especifique los algoritmos en su cadena de conexión.

El siguiente ejemplo de código muestra ambas opciones:

Las siguientes pestañas demuestran cómo especificar todos los compresores disponibles al conectarse a MongoDB:

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)
client = pymongo.AsyncMongoClient("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.AsyncMongoClient(uri)

Si no especifica un algoritmo de compresión, PyMongo no comprime el tráfico de red. Si especifica varios algoritmos de compresión, el controlador selecciona el primero de la lista compatible con su instancia de MongoDB.

Si especifica zlib como uno de sus algoritmos de compresión, también puede usar la opción zlibCompressionLevel para especificar un nivel de compresión. Esta opción acepta un valor entero entre -1 y 9:

  • -:1 (Predeterminado). zlib utiliza su nivel de compresión predeterminado 6 (normalmente).

  • 0: Sin compresión.

  • 1: Velocidad más rápida pero compresión más baja.

  • 9: Mejor compresión pero velocidad más lenta.

El siguiente ejemplo de código especifica el algoritmo de compresión zlib y un valor de 1 para la opción zlibCompressionLevel:

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)
client = pymongo.AsyncMongoClient("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.AsyncMongoClient(uri)

Para obtener más información sobre cualquiera de los métodos o tipos analizados en esta guía, consulte la documentación de la API de MongoClient.

Volver

Especifica opciones de conexión

En esta página