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 ...
随机推荐
- 异步ztree 加复选框 及相应后台处理
异步加载 tree,点一下节点,就发一下请求到后台,然后显示出得到的当前层级节点 <!DOCTYPE html> <html> <head> <meta ch ...
- HTML学习笔记Day14
一.移动端页面布局 1.移动端的屏幕尺寸 移动端屏幕尺寸:屏幕对角线的长度,单位是英寸(1英寸=2.45厘米): 常见的尺寸有:2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0 2.屏幕 ...
- 异步请求 ajax的使用详解
https://blog.csdn.net/happyaliceyu/article/details/52381446 可以说是很详细了,赞
- slider插件制作轮播图
html代码: <div id="banner_tabs" class="flexslider"> <ul class="slide ...
- 神经网络4_BP神经网络
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...
- Event Recommendation Engine Challenge分步解析第四步
一.请知晓 本文是基于: Event Recommendation Engine Challenge分步解析第一步 Event Recommendation Engine Challenge分步解析第 ...
- centos 6 与 centos 7 服务开机启动、关闭设置的方法
简单说明下 centos 6 与 centos 7 服务开机启动.关闭设置的方法: centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add ...
- NGUI使用图集的精灵换图片
创建了一个sprite,选择的是某一个图集下的sprite,现在我想点击它来换图片.前提是你的sprite已经加了UIButton 代码如下: public void OnClick() { if ( ...
- vue this.$router.push和this.$route.path的区别
this.$router 实际上就是全局路由对象任何页面都可以调用 push(), go()等方法: this.$route 表示当前正在用于跳转的路由器对象,可以调用其name.path.quer ...
- weui的icons示例
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset=" ...