mongodb之存储引擎
前言
存储引擎是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之存储引擎的更多相关文章
- mongodb的存储引擎
mongodb版本为3.4 mongodb存储引起的一些概述 存储引擎是MongoDB的核心组件,负责管理数据如何存储在硬盘和内存上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储 ...
- MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache
转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...
- MongoDB新存储引擎WiredTiger实现(事务篇)
导语:计算机硬件在飞速发展,数据规模在急速膨胀,但是数据库仍然使用是十年以前的架构体系,WiredTiger 尝试打破这一切,充分利用多核与大内存时代,开发一种真正满足未来大数据管理所需的数据库.本文 ...
- MongoDB Wiredtiger存储引擎实现原理
Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理 ...
- MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较
前段时间做拦截件监控的时候把拦截件生命期存入mongodb,因生命期有各种变化,因此对此表的更新写操作非常多,老大给我看了一篇文章,才知道mongodb已经支持lsm存储方式了. 原文如连接:http ...
- MongoDB 查看存储引擎
需要登录到具体的主/从节点查询,mongos查询不到 db.serverStatus() 其中有这个 "storageEngine" : { "name" : ...
- MongoDB源码概述——内存管理和存储引擎
原文地址:http://creator.cnblogs.com/ 数据存储: 之前在介绍Journal的时候有说到为什么MongoDB会先把数据放入内存,而不是直接持久化到数据库存储文件,这与Mong ...
- MongoDB学习笔记(五、MongoDB存储引擎与索引)
目录: mongoDB存储引擎 mongoDB索引 索引的属性 MongoDB查询优化 mongoDB存储引擎: 目前mongoDB的存储引擎分为三种: 1.WiredTiger存储引擎: a.Con ...
- WiredTiger 4.1.0 发布,MongoDB 存储引擎
WiredTiger 4.1.0 发布了.WiredTiger 是一个开源的.高性能.可伸缩的 MongoDB 数据存储引擎. 下面是一些性能比较图表: 该版本暂未提供更新内容. 下载地址: Sour ...
随机推荐
- $ST表刷题记录$
\(st表的题目不太多\) 我做过的就这些吧. https://www.luogu.org/problemnew/show/P3865 https://www.luogu.org/problemnew ...
- POJ 3855 计算几何·多边形重心
思路: 多边形面积->任选一个点,把多边形拆成三角,叉积一下 三角形重心->(x1+x2+x3)/3,(y1+y2+y3)/3 多边形重心公式题目中有,套一下就好了 计算多边形重心方法: ...
- Android 签名(5)用命令签名和用android studio,eclipse签名
1,用命令签名 无论用哪个 IDE 开发,最终只是用了 keytool 和 jarsigner 这两个 Java 工具来完成签名任务(在 jdk 的 bin 目录下).其中 keytool 用来生成 ...
- Java中 == 和 equals()
记住三句话 1. 语义上:==指的是内存引用一样.equals是指的是逻辑相等.逻辑相等具体的意思由编写者决定(即在引用类型中,"=="是比较两个引用是否指向堆内存里的同一个地址( ...
- HTML TabIndex属性
TabIndex作用: tabindex:全局属性.指示其元素是否可以聚焦(获得焦点),以及它是否/在何处参与顺序键盘导航(因通常使用tab键操作,顾因此得名). 当使用tab键在网页控件中进行导航时 ...
- android fragment轻松监听返回键/Fragment中的popupwindow响应返回键隐藏
现在的开发我们基本上都是一个主activity中放多个fragment,点击返回按钮的时候,直接退出主activity,但是我们在fragment中经常会弹出例如popupWindow这样的布局,用户 ...
- iis设置404错误页,返回500状态码
一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...
- WPF中的两个绑定场景
1. 如何在诸如ListBox这样的项中绑定父类数据上下文. <ListBox Grid.Row=" ItemsSource="{Binding Entries}" ...
- Java程序员2016年终总结
回顾2016年, 很庆幸,自己能在2016年年尾找到一份满意的web后台开发工作.这也是我学习编程以来第一份开发工作,我很是珍惜. 还记得大三接触了Java的JFrame编写的坦克大战之后,就对编程产 ...
- WebAPI PUT,DELETE请求404