Comprimir tráfego de rede
Nesta página
Visão geral
O PyMongo fornece uma opção de conexão para comprimir mensagens, o que reduz a quantidade de dados passados pela rede entre o MongoDB e seu aplicação.
O PyMongo suporta os seguintes algoritmos de compressão.
Snappy: Disponível no MongoDB 3.6 e posterior. Esta opção requer o python-snappy pacote.
zlib: Disponível MongoDB 3 no.6 e posterior. Esta opção requer o módulo zlib, incluído na biblioteca padrão no Python v1.5 e mais tarde.
Zstandard: Disponível no MongoDB 4.2 e posterior. Esta opção exige o padrão z pacote.
Se você não especificar um algoritmo de compressão, o PyMongo não comprimirá o tráfego de rede. Se você especificar vários algoritmos de compressão, o driver selecionará o primeiro na lista compatível com sua instância do MongoDB.
Especifique algoritmos de compactação
Para habilitar a compressão para a conexão com sua instância do MongoDB, use a opção de conexão compressors
e especifique os algoritmos de compressão que deseja usar. Você pode fazer isso de duas maneiras:
Passe os algoritmos como um argumento para o construtor
MongoClient
.Especifique os algoritmos em sua string de conexão.
O seguinte exemplo de código mostra ambas as opções:
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)
Definir o nível de compressão zlib
Se você especificar zlib
como um dos algoritmos de compressão, também poderá usar a opção zlibCompressionLevel
para especificar um nível de compressão. Esta opção aceita um valor inteiro entre -1
e 9
:
-1: (padrão). zlib usa seu nível de compressão padrão (geralmente
6
).0: Sem compressão.
1: Velocidade mais rápida, mas menor compressão.
9: Melhor compactação, mas velocidade mais lenta.
O seguinte exemplo de código especifica o algoritmo de compressão zlib
e um valor de 1
para a opção 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)
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a documentação da API do MongoClient.