標籤:red 儲存引擎 記錄 com 組件 man 頻繁 multi tps
前言
儲存引擎是Mongodb管理資料存放區主要的組件,Mongodb支援多種儲存引擎,每種儲存引擎適合特定的情境
WiredTiger
特性
1. version >= 3.2版本預設儲存引擎
2. 支援文檔層級的並發
3. 使用MVCC(MultiVersion Concurrency Control)實現並發控制
4. 可以通過快照恢複資料
5. 優先寫journal日誌保證資料落地,單機模式建議開啟journal日誌
6. 支援集合和索引資料壓縮
7. 使用儲存引擎內部緩衝和檔案系統快取
適用情境
適合大部分情境
MMAPv1
特性
1. mongodb第一代引擎,基於檔案記憶體映射(based on memory mapped files)
2. 不支援big-endian架構的系統
3. 通過頻繁寫journal日誌資料來恢複資料
4. 記錄連續儲存在硬碟
5. 更新時,內容超過分配的空間,記錄需要移動到新位置,索引重建和產生硬碟片段,非常耗時,盡量避免這種情況的發生
6. 記錄空間分配策略: 2的N次方,適用記錄可能會變化的情境; 原始大小,適用不會更新的情境,比如日誌記錄
7. 使用所有系統可用緩衝,由系統控制,可隨時回收,記憶體越大效能越好
適用情境
高量讀寫和某些情況高量更新
In-Memory
特性
1. version >= 3.2.6版本可用,僅企業版支援
2. 所用資料存放區在緩衝中,效能比其它儲存引擎要好
3. 支援文檔鎖
4. 需要分配足夠的可用記憶體
5. 不支援持久儲存
適用情境
小資料量,臨時儲存,資料中轉情境
參考資料
【1】mongodb儲存
https://docs.mongodb.com/manual/storage/
【2】Storage Engines
https://docs.mongodb.com/manual/core/storage-engines/
【3】WiredTiger Storage Engine
https://docs.mongodb.com/manual/core/wiredtiger/
【4】MMAPv1 Storage Engine
https://docs.mongodb.com/manual/core/mmapv1/
【5】In-Memory Storage Engine
https://docs.mongodb.com/manual/core/inmemory/
【6】Journaling
https://docs.mongodb.com/manual/core/journaling/
【7】GridFS
https://docs.mongodb.com/manual/core/gridfs/
【8】FAQ: MongoDB Storage
https://docs.mongodb.com/manual/faq/storage/
mongodb之儲存引擎