Mongo3.4 Storage Engines存储引擎(内存存储引擎)

来源:互联网 发布:adobe ae cc for mac 编辑:程序博客网 时间:2024/05/19 18:46

从MongodDB3.2.6版本开始,内存存储引擎是64位版本的的一部分,除了一些元数据和一些诊断数据之外,内存存储引擎不维护硬盘上的任何数据,包括配置数据、索引、用户认证。

通过避免数据库的I/O,内存存储引擎可以避免更多数据库延迟。


指定内存存储引擎


mongod --storageEngine inMemory --dbpath <path>
使用配置文件指定内存存储引擎及保存元数据的路径
storage:   engine: inMemory   dbPath: <path>
并发

内存存储引擎对于MongoDB写操作使用文档级别的并发控制,因此,MongoDB可以在同一时刻修改同一个collection的多个document

内存存储引擎需要将他的所有数据(包括索引,如果是复制集的话也包含oplog)

默认情况下内存存储引擎使用50%的内存;

如果写操作会超过默认指定的内存大小,MongoDB会返回异常

"WT_CACHE_FULL: operation would overflow cache"
重新指定内存存储引擎的大小,使用YAML配置文件方式

storage:   engine: inMemory   dbPath: <path>   inMemory:      engineConfig:         inMemorySizeGB: <newSize>

使用命令行的方式:

mongod --storageEngine inMemory --dbpath <path> --inMemorySizeGB <newSize>
持久化


MongoDB是非持久化的,不会将数据写入持久存储中,非持久化数据包含应用程序数据和系统数据,例如:用户、持久化、索引、复制集配置、分片配置等;因此,日志或等待数据成为持久性的概念并不适用于内存存储引擎。


原创粉丝点击