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

转载于:https://www.cnblogs.com/zhanjindong/p/new-technique-in-new-year-mongodb3.html

新年新技术:MongoDB 3.0相关推荐

  1. Mongodb 4.0+安装

    mongodb 4.0+: windows 环境 选择默认安装路径:存储文件夹自定义: 1.原配置文件删除.mp 2.data下新建db文件夹 Mongod -- dbpath D:MongoDB/d ...

  2. MongoDB 3.0新增特性一览

    引言 在历经版本号修改(2.8版本直接跳到3.0版本)和11个rc版本之后,MongoDB 3.0于2015年3月3日正式发布.可以毫不夸张的说,该版本的新增特性标志着MongoDB这款典型的NoSQ ...

  3. MongoDB 4.0 事务实现解析

    上个月底 MongoDB Wolrd 宣布发布 MongoDB 4.0, 支持复制集多文档事务,阿里云数据库团队 研发工程师第一时间对事务功能的时间进行了源码分析,解析事务实现机制. MongoDB ...

  4. mongodb 3.0.x 添加用户名和密码设置权限

    mongodb 3.0.x 添加用户名,密码,权限设置 最近遇到关于mongodb 3.0.x权限设置的问题,做了一下总结: 第一给mongodb 3.0.x 添加user 第一步修改配置文件: xx ...

  5. MongoDB 3.0 WiredTiger Compression and Performance

    MongoDB3.0中的压缩选项 在MongoDB 3.0中,WiredTiger为集合提供三个压缩选项: 无压缩 Snappy(默认启用) – 很不错的压缩,有效利用资源 zlib(类似gzip) ...

  6. Windows 安装 MongoDB 5.0.2版本

    MongoDB 下载地址:https://www.mongodb.com/download-center/community 下载 .msi 文件,下载后双击该文件,按操作提示安装. 勾选 I acc ...

  7. 【转】MongoDB 3.0 正式版本即将发布,强力推荐

    MongoDB 今天宣布3.0 正式版本即将发布.这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统. MongoDB 3.0 在性能和伸缩性方面都有 ...

  8. 重磅!阿里云MongoDB 5.0发布,速来围观新特性

    简介:2021年9月29日下午,阿里云数据库与MongoDB共同发布了阿里云MongoDB 5.0.MongoDB于2021年7月中发布最新5.0版本,阿里云MongoDB率先跟进官方最新版本能力,快 ...

  9. MongoDB 5.0新特性概览

    简介:MongoDB 5.0标志着一个新的发布周期的到来,以更快地交付新特性给到用户.版本化API与在线重新分片相结合,使用户不必担心未来的数据库升级以及业务变化问题:本地原生时间序列数据平台也使Mo ...

最新文章

  1. ORA-00959: tablespace 'PSAPTEMP' does not exist
  2. HTML5 canvas drawImage() 方法记录
  3. 产品分析:岛APP,青年文化拍了拍社交赛道
  4. PMP知识点(三、范围管理)
  5. 基于vue 2.X和高德地图的vue-amap组件获取经纬度
  6. 第一篇:Entity Framework 简介
  7. qsub 指定节点_PBS,QSUB常用命令
  8. [C++] - 闭包(closure)
  9. java子字符串查找位置_初学者求教,如何在字符串中查找多个子字符串的位置...
  10. IMS与未来电信产业演变
  11. ubuntu修改运行级别方法
  12. 改动Oracle GoldenGate(ogg)各个进程的读检查点和写检查点
  13. 《游戏引擎架构》中英词汇索引表
  14. HTML4到HTML5的新增内容,你知道吗?
  15. 实验题集4:函数R6-1 面积计算器(函数重载) (10 分)
  16. NoSQLBooster for MongoDB 算法注册机
  17. 地理建模——模型概述
  18. 海马汽车经销商管理系统技术解析(七)投诉处理
  19. 难得轻闲-海豚湾恋人
  20. 想做吃鸡游戏么兄弟?98K轻量物理了解一下

热门文章

  1. java逻辑符号怎么打_Java的逻辑运算符?
  2. sql文本编辑器_专业文本编辑工具
  3. Java项目:图书管理系统(java+swing+Gui+Mysql)
  4. Java项目:教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)
  5. linux 读取磁盘扇区,linux 下检查硬盘坏道/扇区
  6. 微信小程序导航栏设置透明
  7. 10个你必须知道的ios框架
  8. 微信小程序实现滑动翻页效果源码附效果图
  9. 20145240《网络对抗》MSF基础应用
  10. 数据库模型设计——主键的设计