对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

压缩网络流量

MongoDB驱动程序可以压缩发送到 MongoDB Server 和从MongoDB Server接收的消息。这减少了每次操作传输的数据量。压缩可以提高受限网络上的性能,并降低与运行MongoDB Atlas相关的数据传输成本。

压缩在传输协议级别运行,因此它适用于应用程序执行的每个操作。如果指定多个算法,驾驶员将使用列表中MongoDB Server也支持的第一个算法。

MongoDB驱动程序支持以下压缩算法:

MongoDB Atlas对跨云区域、云提供商以及基础架构和MongoDB Atlas之间传输的数据收费。网络压缩可减少应用程序发送和接收的数据量,从而降低数据传输成本。要学习;了解有关定价的更多信息,请参阅数据传输成本。

网络压缩还有助于提高工作效率。压缩后的消息通过网络传输的时间更短,这可以缩短应用程序的响应时间。压缩还可以减少MongoDB流量使用的带宽,从而为同一网络上的其他应用程序留出更多带宽。

选择压缩算法时,请考虑以下准则:

  • 使用 Zstandard 在压缩效率和资源使用之间取得平衡。对于大多数应用程序来说,Zstandard 是一个不错的默认选择。

  • 将 Snappy 用于需要最小计算开销的延迟敏感型应用程序。

  • 使用 Zlib 实现跨MongoDB驱动程序和环境的广泛兼容性。

提示

监控 CPU 使用率

压缩以网络带宽换取 CPU 使用率。启用网络压缩后,监控应用程序的 CPU 使用率,以确认这种权衡对您的工作负载有利。要详细了解这些权衡,请参阅 MongoDB 中的 CPU 使用率和网络压缩 博客文章。

PHP库使用PHP扩展来压缩网络流量。下表列出了每种压缩算法所需的最低PHP扩展和MongoDB Server版本:

压缩算法
最低扩展版本
最低服务器版本

1.4.0

4.2

1.4.0

4.2

1.8.0

4.2

要为MongoDB连接启用网络压缩,请安装所需的依赖项并指定要使用的压缩算法。

由于PHP扩展使用MongoDB C驾驶员来实现网络压缩,因此您必须安装C驾驶员所需的依赖项。要查看这些依赖项,请参阅C驾驶员文档中的安装依赖项。

要为MongoDB 部署的连接启用压缩,请使用 compressors 连接选项并指定要使用的压缩算法。您可以通过两种方式执行此操作:

  • 将算法作为参数传递给MongoDB\Client构造函数。

  • 在连接string中指定算法。

以下示例演示如何将 Snappy、 zlib和 Zstandard 指定为连接的压缩器。 选择 MongoDB\Client 或 Connection URI标签页,查看相应的代码:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['compressors' => 'snappy,zstd,zlib'],
);
$uri = 'mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib';
$client = new MongoDB\Client($uri);

如果您指定 Zlib 作为其中一种压缩算法,则还可以使用 zlibCompressionLevel 选项来指定压缩级别。此选项接受 -1 和 9 之间的整数值:

  • - 1 :(默认)。 zlib使用默认压缩级别(通常为6 )。

  • 0 :无压缩。

  • 1 :速度最快,但压缩率最低。

  • 9 :压缩最佳,但速度最慢。

以下示例指定了 zlib 压缩算法和 zlibCompressionLevel 值 1。选择MongoDB\Client或Connection URI标签页以查看相应的代码:

$uriOptions = [
'compressors' => 'zlib',
'zlibCompressionLevel' => 1,
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<hostname>:<port>/?compressors=zlib&zlibCompressionLevel=1';
$client = new MongoDB\Client($uri);

要学习;了解有关MongoDB\Client类的详情,请参阅库API文档中的MongoDB\Client 。

要查看可传递给 MongoDB\Client 的 URI 选项的完整列表,请参阅扩展API文档中的MongoDB\ 驱动程序\ 经理 ::__construct 参数。