MongoDB 之存储引擎

本文详细介绍了MongoDB的三种存储引擎:WiredTiger(从3.0版本开始成为默认引擎,提供文档级别的并发控制、MVCC、压缩和日志系统)、MMAPv1(MongoDB最初的存储引擎,适用于大量读写任务)和In-Memory(内存存储引擎,非持久化,适合对速度要求极高的场景)。WiredTiger通过日志文件系统Journal保证数据持久化,而MMAPv1采用内存映射技术,两者都支持内存使用,但WiredTiger在并发控制和数据恢复方面更为先进。
摘要由CSDN通过智能技术生成

mongodb主要利用存储引擎来管理数据。mongodb为我们提供了多种存储引擎,我们可以根据不同需求来选择最合适的一个。

一、mongodb存储引擎种类
mongodb主要有3种存储引擎,分别是:
(1) WiredTiger
(2) MMAPv1
(3) In-Memory
下面分别介绍这三种存储引擎。

二、WiredTiger
MongoDB 3.0版本开始启用,64位版本。
MongoDB 3.2 成为默认存储引擎

(1) 文档级别的并发
WiredTiger 对写操作执行文档级别的并发控制,也就是说,在同一时间,可以修改一个集合中的不同文档。
针对大多数的读写操作,WiredTiger采取乐观的并发控制机制。WiredTiger 在全局、数据库和集合级别身上仅使用意向锁。当存储引擎检测到两个操作产生冲突时,其中一个操作会引发一个写冲突,促使mongodb显式的的重新执行该操作。
一些全局的操作,典型的有涉及多个库的短暂操作,需要实例锁
一些像删除集合的操作,还需要排他锁

(2) 快照和检查点
WiredTiger 使用多版本的并发控制(MVCC)。
一个操作开始时,WiredTiger 会为事务提供一个实时的数据快照,快照呈现内存中数据的一致性视图。
将数据写入磁盘时,WiredTiger 以一致性的方式将快照中的所有数据写入磁盘。检查点确保数据文件中所有的数据是一致的,并且包含最后一个检查点。检查点可以作为回复数据的点。mongodb配置WiredTiger 来创建检查点(即将快照数据写入磁盘),创建的时机是:每60秒或者当日志文件达到2G。
在写一个新检查点的过程中,上一个检查点仍然是有效的,如果写的过程中出现宕机或者其他异常,一旦重启成功,mongodb会从上一个有效的检查点恢复数据。
当WiredTiger的元数据表关联到新的检查点时,该新的检查点才是可访问和持久的,此时,会释放老检查点的页。
(3) 日志文件系统Journal
默认提交时间间隔为100毫秒。
WiredTiger使用预写事务日志与检查点结合的方

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值