新年新技术: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,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的 ...
随机推荐
- (原)Java初始化过程
先看一个demo,然后进行归纳. class X{ static M m=new M(); Y y=new Y(); public X(){ System.out.print("X" ...
- mongoDB在centos7上的安装
1,下载安装包 下载MongoDB的安装文件 地址:https://www.mongodb.org/downloads#production 选择Linux 64-bit legacy 版本,下载到目 ...
- Struts学习总结-02 类型转换
一 类型转换 input.jsp <%@ page language="java" import="java.util.*" pageEncoding=& ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
- uC/OS-II时间(OS_time)块
/*************************************************************************************************** ...
- (总结)Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...
- vs------密钥
HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
- $(document).ready、body.Onload()和 $(window).load的区别
window.load(function(){...})和body.onload()都存在同样一个问题,那都是在页面所有元素(包括html标签以及引用到得所有图片,Flash等媒体)加载完毕后执行的, ...
- Java——Selector
- HTML学习笔记——frameset和marquee
1>frameset 效果如百Google度 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...