MongoDB 6.0 七個建議升級的原因

時光飛逝,距離上次寫 MongoDB 大版本號更新 MongoDB 5.0 新功能 已經過了一年,在前幾天 MongoDB 6.0 正式上線,我們來看看提供了什麼樣的功能,以及官方列出 7 個需要升級到 6.0 的原因。(技術實作面,如運算子使用會在之後再發文紀錄)

本文依舊是 blog 的精簡與快速風格,若不習慣可參閱原文 7 Big Reasons to Upgrade to MongoDB 6.0


  • 時間序列集合(Time series collection)更多支援。這邊先描述了 5.1~5.3 的特性,我們也來 recap 一下這些功能

    • 5.1: 支援 Sharding!
    • 5.2: Columnar compression 新的資料壓縮技術,號稱比市面上常用的都好,壓縮效率達 70%
    • 5.3: Densification and gap-filling,緻密化與填補空隙,看中文是絕對不會懂的,簡單來說就是填補空缺資料,使得時間序列資料不在統計上不會突然出現斷點。使用場景像是停機或是設備問題等導致資料缺少,就能透過 Aggregation 內的 $densify$fill 階段來補全模擬資料。
    • 6.0: 支援 Compound Index,可真是千呼萬喚,之前覺得使用時間序列集合最大問題點在於查詢,在 6.0 終於支援了,至少有了 POC 的入門磚。
  • Better way to build Event-driven architecture。早期可以透過 API 去訂閱 oplog 的改變,使得 application 得到變動的通知,現在更加強了這個功能。

    • 文件的修改、刪除都能得知狀態以及被刪除整份文件
    • 不僅是 DML,現在連 DDL 也支援
  • 更方便的查詢$lookup, $graphlookup 在少數量效能快 5-10倍,在大數量則快到 2倍 以上,不過很可惜官方沒說何謂 “少數量”、”大數量”,但整體是提高效能的。另一個非常重要的就是這兩個也支援在 Sharding 上使用囉!有要考證照的要特別留意。

  • 更多的運算子,更少的工。稍微掃了一下新增的運算子,真的是超棒的,節省了開發者很多工,不過內容比較多,完整的介紹之後再寫一篇。簡單來說像是 First, Last, Top n 等等這種其他程式或資料庫的語法也支援啦!

  • Replica 新節點的初始同步加快

    • 企業版支援了檔案複製功能,比原本資料同步快四倍
    • Sharding 預設的 Chunk size 從 64 -> 128MB
  • 機敏資料加密

    • 現在在寫入硬碟之前也能壓縮且加密機敏資料
    • 查詢加密資料(Preivew)及效能提升,同時確保整個生命週期都是加密的
  • 查詢體驗與無縫資料同步

    • Atlas 支援 Facet
    • FacetCount 效能最高快到 100 倍
    • 支援 Cluster 對 Cluster 的資料同步,在營運環境搬移、資料備份等需求能夠更便捷。

以上就是 6.0 的新功能,綜觀蠻吸引人的,尤其效能提升與減少開發的工。初期極度有可能會有 bug,還是要經過一段時間運行與效能評估再做決定了。

  • 作者: MingYi Chou
  • 版權聲明: 轉載不用問,但請註明出處!本網誌均採用 BY-NC-SA 許可協議。