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 ...
随机推荐
- discuz的cutstr函数
function cutstr($string, $length, $dot = ' ...') { if(strlen($string) <= $length) { return $strin ...
- codevs2147数星星(哈希)
2147 数星星 时间限制: 3 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小明是一名天文爱好者,他喜欢晚上看星星.这天,他从淘 ...
- TypeScript `unknown` 类型
unknown 字面理解和 any 其实没差,任何类型都可赋值给它,但有一点, Anything is assignable to unknown, but unknown isn't assigna ...
- Django day25 序列化组件(*****)
序列化:将变量从内存中存储或传输的过程称之为序列化 1.序列化组件是干什么用的? 对应着表,写序列化的类 2.如何使用序列化组件 Serializer 1) 重命名:用source:xx = seri ...
- 【题解】晋升者计数 Promotion Counting [USACO 17 JAN] [P3605]
[题解]晋升者计数 Promotion Counting [USACO 17 JAN] [P3605] 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训.!牛是可怕的管理者! [题目描 ...
- ACM_小Z的A+B
小Z的A+B Time Limit: 2000/1000ms (Java/Others) Problem Description: 小Z最喜欢A+B了,没事就研究研究,比如什么大整数A+B(就是100 ...
- 【转】Linux下变量内容删除与替换
转自:http://www.linuxidc.com/Linux/2015-01/111781.htm 当一个变量被赋予值后,有时会对变量的值进行一些微小的调整,比如删除变量值中特定一部份,或替换掉一 ...
- 无法定位程序输入点_except_handler4_common于动态链接库msvcrt.dll
这是由于sp3加载的驱动造成的:只需要将C:\WINDOWS\system32\dwmapi.dll重新命名一下即可以解决. 可以调试程序当系统加载到“c:\Program Files\China M ...
- 12 C#中的方法
还记得我们的第一个程序吗?忘记了?那你要努力了.我们的第一个程序是就是往dos窗口输出一些字符串.在哪个程序中只有一个方法,Main方法.Main方法是一个特殊的方法,但是它也是一个方法.为什么说Ma ...
- Laravel5.1学习笔记20 EloquentORM 关系
Eloquent: Relationships Introduction Defining Relationships One To One One To Many Many To Many Has ...