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 |