新年新技术:MongoDB 3.0
前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0。
What’s new in MongoDB 3.0?
新的存储引擎WiredTiger
MongoDB 3.0的存储引擎是插件式的,默认为新增的WiredTiger。WiredTiger相比原来的MMAPv1引擎的优点:
- 文档级别的锁
这个改进真是盼望已久啊,一直以来MongoDB的锁粒度都被人诟病,根据我们实际的经验MongoDB在高并发的读写混合场景下性能很差。
- 更高的压缩比
新的MongoDB使用了前缀压缩 (Prefix Compression),大大提高了索引数据的压缩比。从我们运维同事的简单的测试结果来看很客观:
- 写性能提高
官方的说是提高了7-10倍,从我们简单的测试结果看虽然没有那么夸张但确实有不小提升:
我们2.x版本测试结果大概2w不到。
注意:WiredTiger只能用于64位的机器。
MMAPv1引擎的改进
虽然新增了WiredTiger,但是对原来的MMAPv1引擎也做了改进。
- 新的记录分配策略
MongoDB 3.0使用power of 2 allocation代替原来的动态记录分配,且弃用了paddingFactor。
原来的分配策略在文档变大超过初始分配的大小的时候,MongoDB要分配一个新的记录,并要移动数据和更新索引,导致存储碎片。 power of 2 allocation
的策略是分配的记录的大小都是2的次方(32, 64, 128, 256, 512 … 2MB),每个记录包括文档本身和额外的空间——padding,这个机制减少了文档增长的时候记录重新分配和数据移动的操作。
显然新的策略在处理大文档和文档增长频繁的场景下效率更高,但如果只有插入操纵和所谓的in-place更新操作(不会增长文档大小)那么使用这种策略会很浪费空间,因此MongoDB 3.0允许你关闭这种策略。
- 集合级别的锁
虽然没有WiredTiger的锁粒度小,但是相比之前MMAPv1还是挺重要的一个改进。
Explain
新增Explain,类似MySQL的查询计划,做性能调优的时候很有用处。
查询API的改进
aggregate()新增$dateToString 操作符,支持将日志转换为指定的格式
查询新增 $eq 操作符支持相等判断
索引
- 后台创建索引时不会被dropDatabase,drop和dropIndexes操作中断。
工具
主要是mongodump和mongorestore功能的改进。
新的Java驱动
简单的看了下源码,原来的API仍然兼容,但重写了很多主要类(MongoCollection,MongoDatabase),新的MongoIterable接口风格很像Java8的Stream,而且都是泛型的。 提供了异步的MongoClient,新的编码框架,提高了性能。
官方文档
新年新技术:MongoDB 3.0的更多相关文章
- CentOS7 安装MongoDB 3.0服务器
1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...
- MongoDB 3.0.6 安装 增删改查
下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2 访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...
- MongoDB 3.0 新特性【转】
本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...
- MongoDB 3.0 用户创建
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
目录(?)[-] 1下载安装 2MongoDB CRUD 1创建数据 2更新数据 3删除 4查询 5更多方法 3MongoDB可视化工具 4总结 本文原文连接: http://blog.csdn. ...
- CentOS7 安装MongoDB 3.0服务
1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...
- [译]MongoDB 3.0发布说明
原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...
- Mongodb 3.0 创建用户
MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 创建第一个用户(该用户需要有grant权限,即:账号管理的授权权限) ...
- (转)MongoDB 3.0 WT引擎参考配置文件
mongodb 3.0 改变很多,从2.6版本升级到3.0要关注的细节很多,如权限等等.3.0在数据存储引擎上更换成了wiredTiger,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的 ...
随机推荐
- 数据结构算法C语言实现(十四)--- 4.1&4.2串的类型定义、表示及实现
一.简述 [暂无] 二.头文件 //4_2_part1.h /** author:zhaoyu */ //2016-6-10 //----串的定长顺序存储表示---- #include "h ...
- maven仓库没有的包依赖
如果有个jar包是我们自己打的,怎么放到maven中呢? 首先在项目里面新建一个lib目录,如果有lib目录则不需要新建,然后放自己的jar包进去,maven的pom.xml配置是: <depe ...
- 【Alpha版本】 第七天 11.15
一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 完成我要招聘的招聘详情显示,完成简历填写及显示功能 完成我要应聘的 ...
- 捉襟见肘之UITableViewCell重用引发的问题
我记录一下自己如何解决cell内容重叠的问题 首先,复习一下:http://blog.csdn.net/omegayy/article/details/7356823 UITableViewCell的 ...
- 【原】js 签到用日历
最近做的一个项目中,需要用到一个日历来记录你的签到,网上找了一些,感觉挺庞大的,所以就自己写了一个,记录一下自己写这个日历的经过 html代码: <table cellspacing=" ...
- swfUpload 上传图片
前端: <script src="~/Scripts/swfupload/swfupload.js"></script> <script src=&q ...
- phpcms从表v9_news_data中字段content中用正则取出图片的地址输出
preg_match ("<img.*src=[\"](.*?)[\"].*?>",$test,$match); echo "$match ...
- JavaWeb学习笔记——开发动态WEB资源(一)Java程序向浏览器输出数据
开发一个动态web资源,即开发一个Java程序向浏览器输出数据,需要完成以下2个步骤: 1.编写一个Java类,实现Servlet接口 开发一个动态web资源必须实现javax.servlet.Ser ...
- Docker Dockerfile详解
http://blog.csdn.net/wsscy2004/article/details/25878223 如何使用 Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等 ...
- AutoMapper不用任何配置就可以从dynamic(动态)对象映射或映射到dynamic对象。
http://www.cnblogs.com/farb/p/4934476.html#pz