mongodb存储引擎调研

mongodb存储引擎调研

MongoDB4.0版本,有3种存储引擎

1.WiredTiger存储引擎(默认)
2.内存存储引擎
3.MMAPv1存储引擎 (MongoDB 4.0开始弃用)

MongoDB4.2版本,有2种存储引擎,从4.2版本移除MMAPv1存储引擎

1.WiredTiger存储引擎(默认)
2.内存存储引擎

目前最新版本是4.4,2020年7月份发布的


目前开发环境用的4.0版本,不影响使用,是否可以升级到4.4版本,这个只是做个建议,不做强制要求。


基于WiredTiger存储引擎、内存存储引擎怎么做选择?
基于我们的数据量,放内存是不可能的,所以我们使用默认的存储引擎WiredTiger


WiredTiger存储引擎的相关知识点

1.Document Level Concurrency 文档级并发

WiredTiger使用文档级并发控制进行写操作。因此,多个客户端可以修改不同的文档集合的在同一时间。

2.Snapshots and Checkpoints 快照与检查点

3.Journal日志 

MongoDB2.0版本后默认开启了Journal日志功能,默认使用snappy对Journal日志进行压缩

4.压缩

WiredTiger存储引擎,MongoDB支持所有集合和索引的压缩

WiredTiger uses block compression with the snappy compression library for all collections
集合默认采用block compression(块压缩)

对于集合还可以使用,下面另外2种压缩方式
zlib
zstd(从MongoDB 4.2开始可用)

prefix compression for all indexes.
索引默认使用前缀压缩


对于大多数工作负载,默认压缩设置可以平衡存储效率和处理要求。
默认情况下,WiredTiger日志也被压缩。有关日记压缩的信息

设置WiredTiger缓存大小

在下面2种取最大值
50%(RAM-1 GB),或
256 MB。

例如,在总共有4GB RAM的系统上,WiredTiger缓存将使用1.5GB RAM(0.5 * (4 GB - 1 GB) = 1.5 GB)。相反,
一个拥有1.25 GB RAM的系统将为WiredTiger缓存分配256 MB,因为这是总RAM的一半以上减去1 GB(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB)。

默认情况下,WiredTiger对所有集合使用Snappy块压缩,对所有索引使用前缀压缩。压缩默认值是可以在全局级别配置的,也可以在集和和索引创建期间基于每个集合和每个索引进行设置。


要调整WiredTiger内部缓存的大小,请参阅 storage.wiredTiger.engineConfig.cacheSizeGB和 --wiredTigerCacheSizeGB。避免将WiredTiger内部缓存的大小增加到其默认值以上

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值