写操作性能


进入MongoDB中文手册(4.2版本)目录

1 索引

集合上的每个索引都会增加写操作的性能花销。
对于集合上的每个insert或delete写操作,MongoDB将插入或删除相应的,来自目标集合中的每个索引的文档键( document keys)。根据更新操作影响的键,一个更新操作可能导致对集合上索引子集的更新。

注意
如果写操作中涉及的文档包含在索引中,则MongoDB仅更新稀疏(sparse)索引部分(partial)索引

通常,索引帮助读操作提升性能,则会不利于写操作的性能。但是,为了在可能的情况下优化写操作性能,在创建新索引并评估现有索引时要小心,以确保您的查询实际使用这些索引。
有关索引和查询,请参阅查询优化。有关索引的更多信息,请参见索引索引策略

2 存储性能

2.1 硬件

存储系统的能力对MongoDB的写操作的性能有一些重要的物理限制。与驱动器的存储系统相关的许多独特因素都会影响写操作性能,包括随机访问模式,磁盘缓存,磁盘预读和RAID配置。
对于随机的工作负载,固态驱动器(SSD)的性能可比旋转硬盘(HDD)高100倍或更多。
请参见生产说明中有关其他硬件和配置选项的建议

2.2 日志

为了在崩溃时提供持久性,MongoDB使用预写日志记录到磁盘日志上。MongoDB首先将内存的更改内容写入磁盘日志文件。如果在将更改内容提交到数据文件之前,MongoDB终止或遇到错误,则MongoDB可以使用日志文件将写操作应用于数据文件。
虽然日志提供的持久性保证通常会超过其他写操作的性能成本,但请考虑以下日志和性能之间的交互:

  • 如果日志和数据文件位于同一块设备上,则数据文件和日志可能必须竞争有限数量的可用I / O资源。将日志移动到单独的设备可能会增加写操作的容量。
  • 如果应用程序指定包括j选项在内的写策略, mongod将减少日志写操作之间的时间间隔,这可能会增加总体写入负载。
  • 日志写操作之间的时间间隔可以使用commitIntervalMs运行时选项进行配置 。减少日记提交操作之间的时间间隔将增加写入操作的数量,这可能会限制MongoDB的写操作能力。增加日志提交之间的时间量可能会减少写操作的总数,但也会增加在失败的情况下日志不会记录写操作的机会。

有关日志的其他信息,请参见日志

进入MongoDB中文手册(4.2版本)目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值