MongoDB默认禁用压缩器时连接字符串压缩参数修改咨询
问题1:如何在连接字符串中修改压缩器的配置值
- 压缩器对应的连接参数为
compressors,只需在连接字符串的查询参数段添加该配置即可,多个压缩器用英文逗号分隔,优先级和填写顺序保持一致,排在前面的会优先被使用。 - 本地默认未加压缩配置的连接字符串为
mongodb://localhost:27017,如果要开启snappy和zlib压缩,修改后如下:
mongodb://localhost:27017/?compressors=snappy,zlib
- 如果你使用MongoDB Compass可视化配置,不需要手动修改字符串,直接在高级连接选项的「压缩」栏勾选需要的压缩器类型,工具会自动生成带对应参数的连接字符串。
- 额外配置项:如果使用zlib压缩,可新增
zlibCompressionLevel参数调整压缩等级,取值范围为-1~9,默认值为-1(zlib库默认压缩等级),示例如下:
mongodb://localhost:27017/?compressors=zlib&zlibCompressionLevel=5
问题2:为什么本地环境的MongoDB默认压缩器是禁用状态
首先明确:默认禁用的是客户端连接的压缩配置,不是MongoDB服务端的压缩功能,服务端默认是支持所有官方压缩器的。官方做这个默认配置的原因如下:
- 兼容性优先:不同版本、不同语言的MongoDB客户端对压缩器的支持程度不同,默认关闭可以避免低版本客户端连接高版本服务端时出现不兼容报错,保证基础连接的可用性。
- 性能基线考量:压缩、解压缩操作会额外占用客户端和服务端的CPU资源,默认关闭的状态可以提供无额外开销的原生性能基准,用户可以根据自身的网络环境、硬件配置自主选择是否开启压缩,避免不必要的性能损耗。
- 本地场景适配:本地部署的场景下,客户端和服务端都运行在同一设备上,走本地回环网络的带宽充足、延迟极低,压缩带来的传输效率提升几乎可以忽略,反而会额外消耗CPU,默认关闭的配置对本地使用场景更友好。
内容的提问来源于stack exchange,提问作者tijn167
相关产品推荐
相关产品推荐

