我正在使用mongodb 3.6服务器和pymongo 3.4。
如何确保mongodb使用快速压缩进行数据传输?
在mongodb日志中,我看到启用了snappy:
app_metadata=(formatVersion=1),assert=(commit_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,
但是如何确定当我通过pymongo发出请求时,实际上已应用了快速压缩?我已经尝试过将mongodb:// localhost /?compressors = zlib添加到连接字符串中,但是添加Compressor = whatever似乎没有什么区别。
如何确保将压缩应用于有线协议? pymongo的版本有关系吗?
答案 0 :(得分:1)
https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-networkmessagecompressors读为:
当双方启用网络压缩时,消息将被压缩。否则,双方之间的消息将不被压缩。
在客户端,我读了https://api.mongodb.com/python/current/changelog.html#changes-in-version-3-7-0:
支持有线协议压缩
因为v3.7之前不支持。
您在日志中看到的block_compressor
可能是存储压缩,而不是有线压缩。它是在mongodb config服务器端的存储选项中定义的,不能从客户端更改。