mongodb 系列 ~ mongo的两种引擎介绍对比
一 简介 两种引擎方式的对比
二 对比与说明
1 版本支持
MMAP引擎 3.2版本之前,默认引擎
WT 引擎 3.2版本之后,默认引擎
2 并发性能(核心)
MMAP引擎 globallock->dblock->collectionlock 相当于mysql的myisam引擎
WT 引擎 globallock->dblock->collectionlock->documentlock 相当于mysql的innodb引擎
从3.2.x开始,WiredTiger成为默认的存储引擎。最为MongoDB目前最流行的存储引擎,WiredTiger与原先的MMAPV1相比有以下优势:
3 压缩加密
MMAP引擎 要求数据在内存和在磁盘的形式一致(map磁盘内存映射)。因此,它并不支持压缩和加密
WT 引擎 支持压缩和加密,占用的物理磁盘空间更少
4 索引压缩
WT 引擎 使用前缀压缩——相同的前缀只存一次 .占用的物理内存空间更少
5 内存控制
WT 引擎拥有了控制使用内存的限制参数,和innodb一样
三 WT引擎参数优化
1 wiredTigerCacheSizeGB=48
含义
1 cacheSizeGB 指的就是Cache size,包括数据和索引。Mongod本身使用内存如连接池堆栈以及sorting buffer等都是额外的,不会被统计到这个数字里面。
2 MongoDB在做诸如聚合、排序、连接管理等操作时需要额外的内存。因此,必须确保有足够的内存可供使用,否则,MongoDB进程有被OOM killer杀死的风险。
和mysql的innodb_buffer_pool很像呢,数据索引放在内存里,排序需要额外的内存
2 推荐配置
服务器内存X75%
3 查看状态命令
db.serverStatus().wiredTiger.cache
2 wiredTigerDirectoryForIndexes=true
1 含义
Index文件和数据文件分离,索引一个目录,数据一个目录。
去具体的collection目录下可以发现
collection index 两个目录
3 wiredTigerDirectoryForIndexes=true
1 含义
是否开启索引的前缀压缩,这里影响所有DB的索引。它会一次存储所有前缀一样的索引,
减少内存、磁盘IO的消耗,默认开启。
4 wiredTigerCollectionBlockCompressor=snappy
1 含义
采用何种压缩方式 默认snappy 不建议采用zlib方式,会加重CPU的负担
四 总结
WT引擎的优化其实主要集中在内存控制 索引压缩两方面,非常好记
mongodb 系列 ~ mongo的两种引擎介绍对比的更多相关文章
- 分享知识-快乐自己:mysql数据库常见两种引擎
mysql的常用引擎 在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 首先: 1.简单介绍这两种引擎,以及该如何去选择. 2.这两种引擎所使用的数据结构是什么. Innod ...
- [转载]C#读写txt文件的两种方法介绍
C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...
- C#读写txt文件的两种方法介绍
C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...
- C#读写txt文件的两种方法介绍[转]
C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...
- C#读写txt文件的两种方法介绍 v
C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...
- spring-data-mongodb两种实现方式对比
spring-data-mongodb两种实现方式对比 参考链接:https://blog.csdn.net/feinifi/article/details/83752862
- Android视频播放的两种方式介绍
1.在Android 中播放视频的方式有两种: 第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放.暂停.进度等: 通过Surfac ...
- 数据权限筛选(RLS)的两种实现介绍
在应用程序中,尤其是在统计的时候, 需要使用数据权限来筛选数据行. 简单的说,张三看张三部门的数据, 李四看李四部门的数据:或者员工只能看自己的数据, 经理可以看部门的数据.这个在微软的文档中叫Row ...
- 数据库基础知识详解五:MySQL中的索引和其两种引擎、主从复制以及关系型/非关系型数据库
1.MySQL中的索引 在MySQL,索引是由B+树实现的,B+是一种与B树十分类似的数据结构. 形如下面这种: 其结构特点: (1)有n课子树的结点中含有n个关键码. (2)非根节点子节点数: ce ...
随机推荐
- Methods for follow-up research of exome analysis:外显子后续分析研究思路总结
外显子后续分析研究思路一般有以下几种(Methods for follow-up research of exome analysis): 1.对突变频率.突变类型.突变方式进行统计分析 Mutati ...
- 面试遇到两个稍显变态的题目,mark一下
一. 答案: 二. 这个实际上就是删掉了最大的元素之后,再找一次max,于是就是第二大的元素了. 我也这么想过,但是我基础不好,忘了有max方法,于是就想着两次遍历,但是就不符合题意了 图中的答案甚好 ...
- c#中数组的总结
Array数组: 基本定义:string[] Scences={"sky","star","sun"} 或者 int[] Scences= ...
- curl与wget
curl 和wget 区别 使用方法 可参考 curl vs Wget 1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令.2.curl支持更多的协议.curl supports ...
- Luogu P2613 【模板】有理数取余
题目链接 \(Click\) \(Here\) 真心没啥东西,只要能\(Get\)到在数字输入的时候按位取模,以及除数也可以直接取模就可以了.(把每个数看做乘法原理和加法原理构造起来的即可.) #in ...
- c3p0配置文件(c3p0.properties.xml)解读
package cn.lijun.demo; import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource ...
- https服务器配置部署
现在很多网站都要是https,包括我之前做的微信小程序都是需要使用https传输的,特将之前学习的记录下,以防忘记 一. 1.HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / T ...
- entityManager分页
十分操蛋. 需要两步. 第一步,查询一共需要多少条. 第二步 分页得到数据 Query query = this.entityManager.createNativeQuery(sb2.toStr ...
- Kafka技术内幕 读书笔记之(五) 协调者——消费者加入消费组
消费者客户端轮询的3个步骤:发送拉取请求,客户端轮询,获取拉取结果 . 消费者在发送拉取请求之前,必须首先满足下面的两个条件.- 确保消费者已经连接协调者, 即找到服务端中管理这个消费者的协调者节点 ...
- Hadoop记录-技术网站
Grafan监控:http://docs.grafana.org/ Tez:http://tez.apache.org/install.html 阿里巴巴镜像:https://opsx.alibaba ...