一、MongoDB的存盤引擎概述
存盤引擎(Storage Engine)是MongoDB的核心組件,負責管理資料如何存盤在硬碟(Disk)和記憶體(Memory)上,從MongoDB 3.2 版本開始,MongoDB 支持多資料存盤引擎(Storage Engine),MongoDB支持的存盤引擎有:WiredTiger,MMAPv1和In-Memory,從MongoDB 3.2 版本開始,WiredTiger成為MongDB默認的Storage Engine,用于將資料持久化存盤到硬碟檔案中,目前,MongoDB支持以下三種存盤引擎:
- WiredTiger:WiredTiger提供檔案級別(Document-Level)的并發控制,檢查點(CheckPoint),資料壓縮和本地資料加密( Native Encryption)等功能,從MongoDB 3.2 版本開始,WiredTiger成為MongDB默認的Storage Engine,
- MMAPv1:在MongoDB 3.2版本前,MMAPv1是默認的資料存盤引擎,
- In-Memory Storage Engine:In-Memory存盤引擎將資料存盤在記憶體中,除了少量的元資料和診斷(Diagnostic)日志,In-Memory存盤引擎不會維護任何存盤在硬碟上的資料(On-Disk Data),避免Disk的IO操作,減少資料查詢的延遲,
二、In-Memory Storage Engine
In-Memory存盤引擎將資料存盤在記憶體中,除了少量的元資料和診斷(Diagnostic)日志,In-Memory存盤引擎不會維護任何存盤在硬碟上的資料(On-Disk Data),避免Disk的IO操作,減少資料查詢的延遲,
使用下面的陳述句指定In-Memory存盤引擎:
mongod --storageEngine inMemory --dbpath <path>
說明:
- 關于--dbpath引數:雖然In-Memory 存盤引擎不會向檔案系統寫入資料,但是它需要使用 --dbpath 維護少量的元資料和診斷(Diagnostic )日志,
- 關于記憶體的使用:--inMemorySizeGB 設定占用的記憶體數量,默認值是:50% of RAM-1GB,指定In-Memory 存盤引擎使用的記憶體資料量,單位是GB,
- 關于持久化:由于In-Memory 存盤引擎不會持久化存盤資料,只將資料存盤在記憶體中,讀寫操作直接在記憶體中完成,不會將資料寫入到Disk檔案中,因此,不需要單獨的日志檔案,不存在記錄日志和等待資料持久化的問題,當MongoDB實體關機或系統例外終止時,所有存盤在記憶體中的資料都將會丟失,
啟動程序如下圖所示:

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/8790.html
標籤:NoSQL
