前一篇介绍了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

新年新技术:MongoDB 3.0的更多相关文章

  1. CentOS7 安装MongoDB 3.0服务器

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  2. MongoDB 3.0.6 安装 增删改查

    下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2  访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...

  3. MongoDB 3.0 新特性【转】

    本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...

  4. MongoDB 3.0 用户创建

    摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...

  5. MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务

    目录(?)[-] 1下载安装 2MongoDB CRUD 1创建数据 2更新数据 3删除 4查询 5更多方法 3MongoDB可视化工具 4总结   本文原文连接: http://blog.csdn. ...

  6. CentOS7 安装MongoDB 3.0服务

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  7. [译]MongoDB 3.0发布说明

    原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...

  8. Mongodb 3.0 创建用户

    MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 创建第一个用户(该用户需要有grant权限,即:账号管理的授权权限) ...

  9. (转)MongoDB 3.0 WT引擎参考配置文件

    mongodb 3.0 改变很多,从2.6版本升级到3.0要关注的细节很多,如权限等等.3.0在数据存储引擎上更换成了wiredTiger,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的 ...

随机推荐

  1. jackson处理boolean类型的注意点

    在使用jackson处理boolean类型的时候,比如你的java bean有一个boolean类型的字段:isTitle, 默认把这个Java bean 转换为json的时候,这个字段就变成了tit ...

  2. UVa 10720 - Graph Construction(Havel-Hakimi定理)

    题目链接: 传送门 Graph Construction Time Limit: 3000MS     Memory Limit: 65536K Description Graph is a coll ...

  3. TcpClient类与TcpListener类

    TcpClient类 //构造方法1 TcpClient t = new TcpClient(); t.Connect(); //构造方法2 IPEndPoint iep = ); TcpClient ...

  4. 【突发问题】昨天更新了OS X EI Capitan 出现了Cocoapods的 pod :command not found

    然后我百度:http://www.jianshu.com/p/6ff1903c3f11 果真,我想想然后执行了作者说的第一步,删除本地Cocoapods文件,然后发现我执行不了接下来的几个步骤了.所以 ...

  5. BZOJ1180: [CROATIAN2009]OTOCI

    传送门 一遍AC,开心! $Link-Cut-Tree$最后一题 //BZOJ 1180 //by Cydiater //2016.9.18 #include <iostream> #in ...

  6. python运维开发之路02

    年底事多,在公司忙成狗,难得把博客更新了下 本章主要内容是collections模块的介绍(队列,计数器,默认字典,有序字典,可命名元组,以及简单介绍深浅拷贝!) collections模块 coll ...

  7. python 培训之爬虫

    1. 输入文件为 fufang_list.txt yaofang_a aaiwan 阿艾丸 yaofang_a aaiwulingsan 阿艾五苓散 yaofang_a acaitang 阿菜汤 ya ...

  8. BZOJ3082: Graph2

    经典问题.强制在线的话非常复杂. 考虑离线. 每条边的存在时间是一个区间,因此按时间建立一颗线段树,将每条边插入,拆成log条边.然后dfs线段树,每次并查集合并当前节点的所有边,到叶子节点时回答询问 ...

  9. phpcms v9 数据库操作函数

    表明默认当前load_model('xxxx')模块所在表名xxxx 若要指定表名  则:操作在mysql.class.php中$this->db->select(...) 1.查询  $ ...

  10. Runner站立会议06

    开会时间:21.10~21.30 地点:基教负一 今天做了什么:日历布局,晚善日历 明天准备做什么:完善日历界面 遇到的困难:暂无 燃尽图: 会议图: