新年新技术: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,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的 ...
随机推荐
- jackson处理boolean类型的注意点
在使用jackson处理boolean类型的时候,比如你的java bean有一个boolean类型的字段:isTitle, 默认把这个Java bean 转换为json的时候,这个字段就变成了tit ...
- UVa 10720 - Graph Construction(Havel-Hakimi定理)
题目链接: 传送门 Graph Construction Time Limit: 3000MS Memory Limit: 65536K Description Graph is a coll ...
- TcpClient类与TcpListener类
TcpClient类 //构造方法1 TcpClient t = new TcpClient(); t.Connect(); //构造方法2 IPEndPoint iep = ); TcpClient ...
- 【突发问题】昨天更新了OS X EI Capitan 出现了Cocoapods的 pod :command not found
然后我百度:http://www.jianshu.com/p/6ff1903c3f11 果真,我想想然后执行了作者说的第一步,删除本地Cocoapods文件,然后发现我执行不了接下来的几个步骤了.所以 ...
- BZOJ1180: [CROATIAN2009]OTOCI
传送门 一遍AC,开心! $Link-Cut-Tree$最后一题 //BZOJ 1180 //by Cydiater //2016.9.18 #include <iostream> #in ...
- python运维开发之路02
年底事多,在公司忙成狗,难得把博客更新了下 本章主要内容是collections模块的介绍(队列,计数器,默认字典,有序字典,可命名元组,以及简单介绍深浅拷贝!) collections模块 coll ...
- python 培训之爬虫
1. 输入文件为 fufang_list.txt yaofang_a aaiwan 阿艾丸 yaofang_a aaiwulingsan 阿艾五苓散 yaofang_a acaitang 阿菜汤 ya ...
- BZOJ3082: Graph2
经典问题.强制在线的话非常复杂. 考虑离线. 每条边的存在时间是一个区间,因此按时间建立一颗线段树,将每条边插入,拆成log条边.然后dfs线段树,每次并查集合并当前节点的所有边,到叶子节点时回答询问 ...
- phpcms v9 数据库操作函数
表明默认当前load_model('xxxx')模块所在表名xxxx 若要指定表名 则:操作在mysql.class.php中$this->db->select(...) 1.查询 $ ...
- Runner站立会议06
开会时间:21.10~21.30 地点:基教负一 今天做了什么:日历布局,晚善日历 明天准备做什么:完善日历界面 遇到的困难:暂无 燃尽图: 会议图: