MongoDB 在 Linux 上的数据压缩策略
一 压缩范围与版本支持
二 关键配置与生效方式
集合/索引/日志压缩(WiredTiger 层)
storage:
engine: wiredTiger
wiredTiger:
collectionConfig:
blockCompressor: snappy # 可选:none|snappy|zlib|zstd
indexConfig:
prefixCompression: true # 默认 true
engineConfig:
journalCompressor: snappy # 可选:none|snappy|zlib
storage.wiredTiger.collectionConfig.blockCompressor 后,仅对新创建的集合生效;存量集合保持原有压缩设置。createCollection(..., { storageEngine: { wiredTiger: { configString: "block_compressor=..." } } }) 重建集合。网络传输压缩(mongod/mongos 之间)
net:
compression:
compressors: snappy,zstd,zlib # 按优先级降序协商
三 场景化策略与选择建议
四 变更与验证步骤
storageEngine.configString 的 createCollection 重建集合,或在低峰期通过 mongodump/mongorestore、mongosync 等工具迁移切换。db.serverStatus().wiredTiger)与文件系统容量。mongostat、mongotop、db.serverStatus() 的缓存命中率与页面读写情况。五 常见误区与注意事项
blockCompressor 不回溯存量集合:仅影响新建集合;存量集合需重建或迁移。