時光飛逝,距離上次寫 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
Facet
與Count
效能最高快到 100 倍- 支援 Cluster 對 Cluster 的資料同步,在營運環境搬移、資料備份等需求能夠更便捷。
以上就是 6.0 的新功能,綜觀蠻吸引人的,尤其效能提升與減少開發的工。初期極度有可能會有 bug,還是要經過一段時間運行與效能評估再做決定了。