Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Comprimir el tráfico de la red

PyMongo ofrece opciones de conexión para comprimir mensajes, lo que reduce la cantidad de datos transferidos a través de la red entre MongoDB y tu 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 librería estándar en Python v1.5 y posteriormente.

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

Para habilitar la compresión en la conexión a tu instancia de MongoDB, utiliza el compressors la opción de conexión y especifica los algoritmos de compresión que deseas utilizar. Puedes hacerlo de dos maneras:

  • Pase los algoritmos como argumento al constructor MongoClient.

  • Especificar los algoritmos en tu 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 se especifica un algoritmo de compresión, PyMongo no comprime el tráfico de red. Si especificas varios algoritmos de compresión, el driver seleccionará el primero en la lista que sea compatible con tu 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: (por defecto). zlib utiliza su nivel de compresión por defecto (normalmente 6).

  • 0: Sin compresión.

  • 1: La velocidad más rápida, pero la 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 aprender más sobre cualquiera de los métodos o tipos discutidos en esta guía, consulta la documentación MongoClient API.

Volver

Especifica opciones de conexión

En esta página