Visão geral
Os drivers do MongoDB podem compactar as mensagens enviadas e recebidas do MongoDB Server. Isso reduz a quantidade de dados transferidos para cada operação. A compressão pode melhorar o desempenho em redes restritas e reduzir os custos de transferência de dados associados à execução do MongoDB Atlas.
A compressão opera no nível do protocolo de conexão , portanto, ela se aplica a todas as operações que seu aplicação executa. Se você especificar mais de um algoritmo, o driver usará o primeiro algoritmo da sua lista que o MongoDB Server também suportará.
Algoritmos de compressão
Os drivers do MongoDB suportam os seguintes algoritmos de compressão:
Benefícios da compressão de rede
MongoDB Atlas charges for data transferred across cloud regions, cloud providers, and between your infrastructure and MongoDB Atlas. Network compression reduces the amount of data that your application sends and receives, which can lower these data transfer costs. To learn more about pricing, see Data Transfer Costs.
A compactação de rede também gera benefícios de produtividade. As mensagens compactadas levam menos tempo para serem transferidas pela rede, o que pode melhorar o tempo de resposta do seu aplicativo. A compactação também reduz a largura de banda usada pelo tráfego do MongoDB , o que deixa mais largura de banda disponível para outros aplicativos na mesma rede.
Ao escolher um algoritmo de compressão, considere as seguintes diretrizes:
Use o Zstandard para obter um equilíbrio entre eficiência de compactação e uso de recursos. O Zstandard é uma boa opção padrão para a maioria dos aplicativos.
Use o Snappy para aplicativos sensíveis à latência que exigem sobrecarga computacional mínima.
Use o Zlib para ampla compatibilidade entre drivers e ambientes MongoDB .
Dica
Monitore o uso da CPU
Compression trades network bandwidth for CPU usage. After you enable network compression, monitor your application's CPU utilization to confirm that the trade-off benefits your workload. To learn more about these trade-offs, see the CPU Utilization and Network Compression in MongoDB blog post.
Compatibilidade de versão
Todas as versões da integração do Laravel suportam cada algoritmo de compressão de rede.
A tabela a seguir lista a versão mínima do MongoDB Server suportada para cada algoritmo:
Habilitar compressão de rede
Para habilitar a compactação de rede para sua conexão MongoDB , execute as seguintes etapas:
Construa a extensão MongoDB PHP com as dependências necessárias. A extensão lida com a compactação de rede, não com a integração com o Laravel.
Especifique os algoritmos de compressão que deseja usar.
Instalar dependências
Como a integração do Laravel usa a extensão MongoDB PHP e o driver MongoDB C para implementar a compactação de rede, você deve instalar o driver C com as dependências necessárias. Para exibir essas dependências, consulte Instalar dependências na documentação do driver C.
Especifique algoritmos de compactação
Para habilitar a compressão para a conexão com sua instância do MongoDB , atualize a array connections no arquivo de configuração config/database.php do seu aplicativo. Você pode especificar os algoritmos de compressão de uma das seguintes maneiras:
Inclua a opção
compressorsna arrayoptionsUse o parâmetro
compressorsna string de conexãodsn
Selecione a aba Options Array ou Connection String para visualizar um exemplo que especifica todos os compressores disponíveis:
Definir o nível de compressão do Zlib
Se você especificar Zlib como um dos seus algoritmos de compressão, você 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, e os valores têm os seguintes efeitos:
-1: (Padrão) o Zlib usa seu nível de compressão padrão
6(geralmente).0: sem compressão.
1: velocidade mais rápida, mas menor compressão.
9: a melhor compactação, mas a velocidade mais lenta.
Selecione a aba Options Array ou Connection String para visualizar um exemplo que define a opção zlibCompressionLevel como 1: