mongodb3.0版本的2种引擎对比
mongodb3.0以后 增加了wiredtiger引擎、常规引擎也升级到MMAPv1引擎(MongoDB2.6及以下版本用的是MMAP引擎):
mmapv1引擎:
collection锁(collection-level concurrency control),在MMAP版本中,只提供了database的锁(既当一个用户对一个collection进行操作时,其他的collection也被挂起);
wiredtiger引擎:
提供文档级锁(document-level concurrency control),类似于关系型数据库的的行级锁;
支持文件压缩(其中snappy压缩机制可以在5%的额外CPU消耗,减少70%的空间使用,也可以根据需要调节压缩比例),三种压缩类型:
1、不压缩;
2、Snappy压缩:默认的压缩方式, Snappy是在谷歌内部生产环境中被许多项目使用的压缩库,包括BigTable,MapReduce和RPC等,压缩速度比Zlib快,但是压缩处理文件的大小会比Zlib大20%-100%, Snappy对于纯文本的压缩率为1.5-1.7,对于HTML是2-4,对于JPEG、PNG和其他已经压缩过的数据压缩率为1.0。在I7 i7 5500u 单核CPU测试中,压缩性能可在200M/s-500M/s;
3、Zlib压缩: Z1ib是一个免费、通用、跨平台、不受任何法律阻碍的、无损的数据压缩开发库,相对于Snappy压缩,消耗CPU性能高、压缩速度慢,但是压缩效果好。
Mongodb 3.0.8 两种引擎,4种配置压缩占比
imported 1443050 documents,885MB
引擎 | mmapv1 | wt | ||
压缩算法 | preallocDataFiles | none | snappy | zlib |
占用空间 | 1.953GB | 0.870GB | 0.227GB | 0.074GB |