前言

存储引擎是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. java—容器学习笔记

    一:迭代器 刚开始学容器,做了个简单的练习题.. import java.util.ArrayList; import java.util.Collection; import java.util.I ...

  2. 禁用backspace网页回退功能

    <script language="JavaScript">document.onkeydown = check;function check(e) { var cod ...

  3. 9.28NOIP模拟题

    9.28NOIP模拟题 题目 哈 哈哈 哈哈哈 英文题目与子目录名 ha haha hahaha 单个测试点时间限制 1秒 1秒 1秒 内存限制 256M 128M 64M 测试点数目 10 10 1 ...

  4. Java转大数据开发全套视频资料

    大数据在近两年可算是特别火,有很多人都想去学大数据,有java转大数据的,零基础学习大数据的.但是大数据真的好学吗. 我们先来了解一下什么是大数据. 大数据是指无法在一定时间内用常规软件工具对其内容进 ...

  5. Kafka详解与总结(一)

    1. Kafka概述 1.1. 消息队列 1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推 ...

  6. HyperLedger Fabric部署与链码解读

    1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术.和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统.它是一个联盟链.Fabric与其 ...

  7. 安卓中Canvas实现清屏效果

    可以在代码里面添加: paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); canvas.drawPaint(paint) ...

  8. ios cocos2d-x 多点触摸

    需要在 AppController.mm文件中添加一句多点触摸支持: [_view setMultipleTouchEnabled:true];

  9. C#入门经典 Chapter3 变量和表达式

    3.1 C#基本语法 分号结束语句 花括号字符不需要附带分号 缩进     注释:/*....*/,//,/// 区分大小写 3.2 C#控制台应用程序的基本结构 namespace Chapter3 ...

  10. SQL基本操作——事务

    事务是并发和恢复控制的基本单元. 事务四个属性:原子性.一致性.隔离性.持久性. 原子性:一个事务是一个不可分割的单位,事务中包括的诸多操作要么成功要么都失败. 一致性:事务必须使数据库从一个一致性状 ...