前言

存储引擎是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之存储引擎的更多相关文章

  1. mongodb的存储引擎

    mongodb版本为3.4 mongodb存储引起的一些概述 存储引擎是MongoDB的核心组件,负责管理数据如何存储在硬盘和内存上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储 ...

  2. MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache

    转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...

  3. MongoDB新存储引擎WiredTiger实现(事务篇)

    导语:计算机硬件在飞速发展,数据规模在急速膨胀,但是数据库仍然使用是十年以前的架构体系,WiredTiger 尝试打破这一切,充分利用多核与大内存时代,开发一种真正满足未来大数据管理所需的数据库.本文 ...

  4. MongoDB Wiredtiger存储引擎实现原理

    Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理 ...

  5. MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较

    前段时间做拦截件监控的时候把拦截件生命期存入mongodb,因生命期有各种变化,因此对此表的更新写操作非常多,老大给我看了一篇文章,才知道mongodb已经支持lsm存储方式了. 原文如连接:http ...

  6. MongoDB 查看存储引擎

    需要登录到具体的主/从节点查询,mongos查询不到 db.serverStatus() 其中有这个 "storageEngine" : {  "name" : ...

  7. MongoDB源码概述——内存管理和存储引擎

    原文地址:http://creator.cnblogs.com/ 数据存储: 之前在介绍Journal的时候有说到为什么MongoDB会先把数据放入内存,而不是直接持久化到数据库存储文件,这与Mong ...

  8. MongoDB学习笔记(五、MongoDB存储引擎与索引)

    目录: mongoDB存储引擎 mongoDB索引 索引的属性 MongoDB查询优化 mongoDB存储引擎: 目前mongoDB的存储引擎分为三种: 1.WiredTiger存储引擎: a.Con ...

  9. WiredTiger 4.1.0 发布,MongoDB 存储引擎

    WiredTiger 4.1.0 发布了.WiredTiger 是一个开源的.高性能.可伸缩的 MongoDB 数据存储引擎. 下面是一些性能比较图表: 该版本暂未提供更新内容. 下载地址: Sour ...

随机推荐

  1. php验证邮箱是否合法

    下面我来总结了在php邮箱验证的正则表达式以及还可以checkdnsrr函数来验证你输入的邮箱是否是有效的哦,这样可以更好的过滤到无效邮箱地址哦.     域名由各国文字的特定字符集.英文字母.数字及 ...

  2. centos安装 memcached

    .安装 yum -y update yum install -y libevent libevent-devel yum install -y memcached 2.配置 vi /etc/sysco ...

  3. JavaScript入门三

    *********BOM和DOM******** JavaScript分为 ECMAScript,DOM,BOM. BOM(Browser Object Model)是指浏览器对象模型,它使 Java ...

  4. [转]Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法

    本文转自:http://www.cnblogs.com/tomfang/archive/2013/05/25/3098454.html 当 用,Provider=OraOLEDB.Oracle方式访问 ...

  5. Java系列学习(十三)-字符串

    1.字符串基础 概念:字符串本质是打包字符数组的对象,是java.lang.String类的实例 2.字符串的构造方法 public String() public String(byte[] byt ...

  6. MVC系列学习(十四)-路由规则及路由调试工具

    1.本次学习的代码,比较简单,就是在路由配置文件中,添加一个路由信息:同时添加一个相应的控制器及视图 控制器中代码如下 即有两条路由匹配规则,一个Kim控制器,该控制器下有个Index的方法,和一个对 ...

  7. D3.js 力导向图(小气泡围绕中心气泡)

    html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...

  8. Ubuntu 系统的常用快捷键

    Ubuntu操作基本快捷键 ibus-setup :设置系统输入法 scp filename username@serverIp:/home/xxx/xxx/filename   回车输入该usern ...

  9. SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程

    SAS进阶<深入解析SAS>之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择.探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究 ...

  10. Android文件操作报open failed: EBUSY (Device or resource busy)

    Android删除文件后重新创建时偶尔出现 open failed: EBUSY (Device or resource busy)错误,该错误是Android系统的一个bug,大概的意思类似于win ...