MongoDB版本及存儲引擎區別


數據庫版本及優勢

3.4版本在性能和安全性等方面較3.2版本均有不同程度的提升;
4.0版本更適用於金融等對事務有依賴且使用NoSQL特性的場景;
4.2版本采用二段提交方式,保證分片集群事務的ACID特性,極大拓展了適用的業務場景。更多詳情請參見下表。
 
數據庫版本 優勢
3.4版本
  • 更快的主備同步

    在同步數據的同時建立所有索引(以前的版本僅建立_id索引)。同時在同步數據的階段,Secondary節點不斷讀取新的oplog信息,確保Secondary節點的local數據庫具備足夠的存儲空間來存儲臨時數據。

  • 更高效的負載均衡

    3.2及以前版本中,分片集群的負載均衡由Mongos節點負責,多個Mongos節點會搶一個分布式鎖,由搶鎖成功的Mongos節點執行負載均衡任務,在Shard節點間遷移塊;而在3.4版本中,負載均衡由ConfigServer節點中的Primary節點負責,負載均衡的並發度和效率上均有大幅提升。

  • 更豐富的aggregation操作

    在3.4版本增加了大量的aggregation操作符,可支持更強的數據分析能力。例如,bucket能便捷地對數據進行分類;$grahpLookup相較於3.2版本的$lookup能支持更復雜的關系運算;$addFields使得文檔操作更豐富(例如將某些字段求和存儲為新的字段)。

  • 支持Sharding Zones

    分片集群里引入了Zone的概念,主要取代現在的tag-aware sharding機制,能將某些數據分配到指定的一個或多個Shard節點中,該特性極大地方便sharding cluster的跨機房部署。

  • 支持Collation

    在之前的版本里,文檔里存儲的字符串不論是中英文還是大小寫,一律按字節來對比;引入Collation后,支持對字符串的內容進行解讀,可以按使用的locale進行對比,也支持在對比時忽略大小寫。

  • 支持只讀視圖(Read-only views)

    在3.4中增加了對只讀視圖的支持,可以將集合中滿足某個查詢條件的數據虛擬成一個特殊的集合,用戶可以在特殊的集合上做進一步的查詢操作。

4.0版本
  • 跨文檔事務支持

    首個支持跨文檔事務的NoSQL雲數據庫,將文檔模型的速度,靈活性、功能與ACID保證相結合。

  • 遷移速度提升40%

    並發的讀取和寫入,使得新增的Shard節點能更快地完成數據遷移以承載業務壓力。

  • 讀性能大幅擴展

    借助事務特性,Secondary節點不再因為同步日志而阻塞讀取請求。 阿里雲同時在全體系版本支持多節點擴展功能,可大幅提升業務讀取能力。

4.2版本
  • 分布式事務

    采用二段提交方式,保證分片集群事務的ACID特性,極大拓展了MongoDB的業務場景,實現從NoSQL到NewSQL的飛躍。

  • 可重試讀

    增加可重試讀功能,提供弱網環境下自動重試能力,降低業務端的邏輯復雜性,保證用戶業務的連續性。

  • 通配符索引

    對於非確定字段,支持創建通配符索引覆蓋一個文檔下的多個特征字段,管理方便且使用靈活。

  • 字段級加密

    驅動層面支持字段級加密,可以針對特定的敏感信息(例如賬號、密碼、價格、手機號等)單獨加密。避免全庫加密,提升業務靈活性和安全性。

  • 物化視圖

    通過最新的物化視圖可以緩存計算結果,避免重復計算提升運行效率,減少邏輯復雜度。

存儲引擎

 
存儲引擎 說明 適用場景
WiredTiger 基於BTree結構組織數據,相比MongoDB早期的MMAPv1存儲引擎性能提升明顯,且支持數據壓縮,存儲成本更低。 默認存儲引擎,適用於大多數業務場景。
RocksDB(已下線) 基於LSM tree結構組織數據,針對性優化數據寫入,將隨機寫入轉換成了順序寫入,能保證持續高效的數據寫入。 適用於大量寫且少讀的場景。
TerarkDB(已下線) 借助TerarkDB的全局壓縮技術,在提高壓縮率的同時,能大幅提高隨機查詢的性能。 適用於多讀少寫或批量寫大量讀的場景。

版本和存儲引擎的適配關系

為最大化滿足各類業務場景需求,雲數據庫MongDB提供了WiredTiger、RocksDB和TerarakDB三種存儲引擎供您選擇。存儲引擎與版本間的適配關系如下:

 
存儲引擎 3.4版本 4.0版本 4.2版本
WiredTiger

單節點實例

副本集實例

分片集群實例

單節點實例

副本集實例

分片集群實例

副本集實例

分片集群實例

RocksDB(已下線)

單節點實例(按量付費)

副本集實例(按量付費)

分片集群實例

- -
TerarkDB(已下線)

分片集群實例

-

-

 

MongoDB的版本

重要:

始終升級到發行系列的最新穩定版本。

MongoDB的版本的形式X.Y.Z在那里X.Y 指的是一個版本系列或開發系列Z 指修訂/補丁號。

  • 如果Y是偶數,則X.Y指發布系列;例如, 4.0發行系列和4.2發行系列。發布系列 穩定且適合生產。
  • 如果Y是奇數,則X.Y指一個開發系列;例如, 4.1開發系列和4.3開發系列。開發系列僅用於測試而不是生產

例如,在MongoDB版本中4.0.124.0是指發行系列和.12版本。

最新產品

在發布一系列變化(例如4.04.2)通常標志着引進可能破壞向后兼容的新功能。

補丁版本

更改版本號(如4.0.114.0.12)一般標注錯誤修復和向后兼容的改變的釋放。

驅動程序版本

MongoDB的版本編號系統與MongoDB驅動程序使用的系統不同。

官方發行說明https://docs.mongodb.com/manual/release-notes/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM