
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实例关机或系统异常终止时,全部存储在内存中的数据都将会丢失。
启动过程以下图所示:日志

