前言

存储引擎是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. [Swift通天遁地]六、智能布局-(8)布局框架的使用:多分辨率适配和横竖屏布局

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. [Swift通天遁地]七、数据与安全-(11)如何检测应用程序中的内存泄露

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. [Swift通天遁地]八、媒体与动画-(9)快速实现复合、Label、延续、延时、重复、缓冲、弹性动画

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. [Swift通天遁地]九、拔剑吧-(9)创建支持缩放、移动、裁切的相机视图控制器

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. JS属性defer

      其实就是简单的利用defer属性,让浏览器读JS脚本的时候完全不等脚本开始读就开始读下面的图片啊,html代码了.然后让js脚本自己在那里慢慢读取完以后再执行. 给外链的js脚本添加defer=& ...

  6. Unity基本操作

    主要内容: C#学习 Unity项目 打砖块:BreakBricks Unity操作 Unity操作: 调试 碰撞体 触发器 视角 键盘视角平移 光照贴图 游戏对象Gameobject 访问对象 实体 ...

  7. Python基础数据类型(四) tuple元祖

    元祖tuple(,) 元祖就是不可变的列表 元祖用()表示,元素与元素之间用逗号隔开,数据类型没有限制 tu = ('科比','詹姆斯','乔丹') tu = tuple('123') 小括号中 有一 ...

  8. DB2锁表或超时解决方案

    DB2锁表或超时 一.场景 对数据表进行更新(查询没问题),错误提示如下: SQLCODE=-911, SQLSTATE=40001, DRIVER=3.63.75SQL0911N The curre ...

  9. Unity通过指定摄像机截屏

    简介 介于照抄网上之前的截图教程,然后在实际应用过程中出现了一些小小的问题,修正了一下下,特此分享一下 PS:代码在后面 原理 原理很简单,就是将一个相机的内容渲染到一个贴图上,然后将贴图保存为图片 ...

  10. JS——if条件判断

    现在只说特殊情况: 1.一个变量,例如n1=null <script> var n1 = null; alert(n1);/*弹窗的值为null*/ if (n1 == null) {/* ...