
1、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操做,減小數據查詢的延遲。
2、In-Memory Storage Engine
In-Memory存儲引擎將數據存儲在內存中,除了少許的元數據和診斷(Diagnostic)日誌,In-Memory存儲引擎不會維護任何存儲在硬盤上的數據(On-Disk Data),避免Disk的IO操做,減小數據查詢的延遲。
使用下面的語句指定In-Memory存儲引擎:加密
mongod --storageEngine inMemory --dbpath <path>
說明:spa
- 關於--dbpath參數:雖然In-Memory 存儲引擎不會向文件系統寫入數據,可是它須要使用 --dbpath 維護少許的元數據和診斷(Diagnostic )日誌。
- 關於內存的使用:--inMemorySizeGB 設置佔用的內存數量,默認值是:50% of RAM-1GB。指定In-Memory 存儲引擎使用的內存數據量,單位是GB。
- 關於持久化:因爲In-Memory 存儲引擎不會持久化存儲數據,只將數據存儲在內存中,讀寫操做直接在內存中完成,不會將數據寫入到Disk文件中,所以,不須要單獨的日誌文件,不存在記錄日誌和等待數據持久化的問題,當MongoDB實例關機或系統異常終止時,全部存儲在內存中的數據都將會丟失。
啓動過程以下圖所示:日誌

