告别 MongoDB 2.x 拥抱 3.x 版本的5大理由

云数据库 MongoDB 版

基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。并提供专业的数据库在线扩容、备份回滚、性能优化等解决方案。

了解更多

据不完全统计,目前还有很多同学在生产环境使用着 MongoDB 2.x 版本的服务,偶尔也会听到一些抱怨,但有些抱怨其实很没道理,因为抱怨的问题在最新版本的MongoDB里已经解决了,你缺的只是一次版本升级。

1. 更安全的数据库

  • 3.x 版本默认WriteConcern 为{w:1},2.x 较早的版本为 {w: 0}
  • 3.x 默认使用更安全的 SCRAM-SHA-1 算法鉴权,代替了2.x 版本默认的 MONGODB-CR
  • 3.x 支持加密引擎对存储的数据进行加密

2. 更高的服务性能

版本 mmapv1 wiredtiger
2.x DB级别锁 不支持
3.x 集合级别锁 文档级别锁

如果你使用2.x存在高并发时的性能问题,那么升级到3.x后,问题会得到极大的改善。

3. 更低的存储成本

版本 mmapv1 wiredtiger
2.x 不支持数据压缩 不支持
3.x 不支持数据压缩 支持snappy、zlib等压缩

很多用户从 2.x 升级到 3.x + wiredtiger 后,惊奇的发现,数据量居然变小了很多,比如原来100G的数据,升级后只有30G了,这是因为wiredtiger默认使用snappy压缩,存储成本通常只有mmapv1的10%-30%左右。

4. 更快的复制

  • 3.x 在增量同步数据时,拉取oplog和重放oplog完全流水线化,效率更高
  • 3.4 对全量同步做了改进
    • 在拷贝数据的时候,同时建立所有的索引(以前版本只有_id索引是在同步数据时建立的)
    • 拷贝数据的阶段,secondary 不断拉取新的 oplog,同步效率更高,同时避免了出现oplog不足无法同步的问题。

5. 更简单、高效的分片集群

  • MongoDB 3.2 开始,分片集群的Config Server 也是一个复制集,之前的版本则是多个独立的mongod节点,维护起来更简单。
  • MongoDB 3.4 开始,分片集群的迁移由Config server负责,并支持同时发起迁移任务,迁移效率更高。

3.x 版本里还增加了其他一些很给力的功能特性,比如

  • 部分索引,可以让索引占用的空间更小
  • 文档校验,灵活的文档模型下
  • Collation,支持本地化语言排序
  • 只读视图,让复杂的查询写起来的更简单
  • 更强大的aggregation支持
  • ......

升级步骤建议

因为2.x 到 3.x 改动很多,在升级的时候,必须先升级到3.0版本,步骤参考Upgrade MongoDB to 3.0,然后从3.0再往更高的版本升级。

虽然通过上述方式,MongoDB能做到不停机的从2.x升级到3.x,但强烈建议升级的时候,使用更保险的方式。

  1. 建立新的3.x复制集
  2. mongodump 2.x 复制集的数据
  3. mongorestore 到3.x复制集
  4. 等待3.x服务稳定,将2.x复制集下线

版本使用建议 (2016-12-23版)

版本 建议
2.x 强烈建议升级到3.2
3.0 建议升级到3.2
3.2 强烈建议使用
3.4 鼓励使用

云数据库 MongoDB 版

基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。并提供专业的数据库在线扩容、备份回滚、性能优化等解决方案。

了解更多

时间: 2024-10-04 18:58:18

告别 MongoDB 2.x 拥抱 3.x 版本的5大理由的相关文章

python-Python的2.7从2.7.4到2.7.11有好多版本,区别大吗,下载哪一个要好一些?新手,谢谢

问题描述 Python的2.7从2.7.4到2.7.11有好多版本,区别大吗,下载哪一个要好一些?新手,谢谢 Python的2.7从2.7.4到2.7.11有好多版本,区别大吗,下载哪一个要好一些?新手,谢谢谢谢 解决方案 大版本都是2.7.主要是一些bug修复.功能没有什么新添加.不过可以的话就上到最新的 解决方案二: 一般来说前两个版本号是基本的架构,后后面的号码则是修补的一些bug,并没有大的区别,但并不是越新越好,对于我们普通用户来说,基本没有区别 解决方案三: 新手应该学2.7版本的吧

MongoDB.NET 2.2.4驱动版本对Mongodb3.3数据库中GridFS增删改查_MongoDB

本文实例为大家分享了针对Mongodb3.3数据库中GridFS增删改查,供大家参考,具体内容如下 Program.cs代码如下: internal class Program { private static void Main(string[] args) { GridFSHelper helper = new GridFSHelper("mongodb://localhost", "GridFSDemo", "Pictures"); #re

MongoDB使用常见问题及应用场景全集(含大咖分享视频干货)

2017年3月的MongoDB杭州用户交流会获得了广大用户的好评,更有很多其他地方的小伙伴们咨询什么时候能来当地开交流会.为了让各位MongoDB爱好者get到现场分享嘉宾的满满干货,特对交流会视频及相关资料进行整理: 活动视频地址: 1.妈妈帮平台技术架构及MongoDB使用实践 --胡兴邦 播放:https://yq.aliyun.com/edu/lesson/play/684 2.阿里云MongoDB Sharding备份和恢复服务深度解密--明俨 播放:https://yq.aliyun

IplImg 和 Mat 版本的 facedetect 大对比

前天老板突然把原来2个月的项目压缩到2个星期(PS:要不要差距这么大), 本来计划的比较完善的暑假计划看来要搁置一段时间了,不能刷题了,不能看视频了,不能... 万一马上的这个学期可以打比赛但是缺少训练怎么办.............不知道... [不同一   分类器的加载] IplImg版本: static CvMemStorage* storage = 0; static CvHaarClassifierCascade* cascade = 0; const char* cascade_na

拥抱新技术的一点思考 & 对大数据处理的一点思考

拥抱新技术的一点思考 末经本人同意,严禁转载,徽沪一郎. 概要 无论是github上还是Apache基金会,每过一段时间都会有一些非常优秀的项目出现.如何在较短的时间内比较好的学习和把握住新项目的精髓及要点呢? 就这个问题,本人做了些微的总结,主要集中于较短时间内会使用该项目,会进行相关的应用编程,能够结合实际情况进行系统调优. https://yq.aliyun.com/attachment/download 对大数据处理的一点思考 概要 2014大部分的时间都花在了Spark这一大数据领域的

dll多版本调用--求大神帮忙

问题描述 我之前安装了某第三方控件,调用的是 A.dll(版本是5.0),现在系统升级该控件,现在使用A.dll(版本为7.0).我现在想web程序中可以调用这两个版本的dll.由于工程庞大想用一种简单的方法让系统自己去找到调用版本.我的想法是用[全局程序集缓存工具和程序集链接器]来实现,现在实现下来不顺利.希望能有大神指点迷津. 解决方案 解决方案二:顶,顶,顶,顶解决方案三:顶,顶,顶,顶解决方案四:mark一下,我也遇到这个问题了,求大神指点解决方案五:System.Reflection.

《大数据存储:MongoDB实战指南》一1.1 什么是大数据

1.1 什么是大数据 大数据存储:MongoDB实战指南对于各种规模大小的组织机构而言,由于数据爆炸式的增长,传统的数据处理技术变得越来越难适应,需要有变革的技术来存储.分析这些大数据.谁能够掌握这些存储.分析技术,谁就有可能成为未来市场的主导者.财富500强公司在这个方面已走在前列,他们认识到大数据不仅仅是一门技术,而且是未来商业的发展趋势,并且已经开始从创新的大数据业务中受益.例如,企业能够分析用户的Web点击习惯,总结出用户喜好,进而有针对性地开展促销:政府部门能够利用大数据预测疾病的传播

通过MongoDB安全事件来谈谈为什么要用云服务

每到年底,比铁路部门还忙碌就是各路小偷,恰巧最近一篇关于NoSQL暴露公网的文章开拓了他们的思路.就在文章发布后这一周里,陆陆续续接到关于自建MongoDB被"黑客"攻击,数据被删,并且索要Q币的案例.今天我自卖自夸下,为了数据库安全,快点上云MongoDB.但正式自夸之前,我们先来复盘看看. 被黑者特征 本次事件的作案手法实在是称不上高级,所以我暂且称他们为"坏人",但这事不能完全埋怨"坏人",被攻击的这些自建MongoDB,全部都满足两个特征

全新版本MongoDB数据存储席卷物联网

本文首先对物联网进行了模型抽象,着重和大家剖析了MongoDB解决方案,包括文档模型.高可用复制集.分片集群和Aggregation&MapReduce,最后分享了全新的MongoDB特性. 以下为内容整理: MongoDB是文档型数据库,其核心的三大优势是灵活文档模型 .高可靠复制集. 高可扩展分片集群.在最新的 DB Engine Rank 的排名中,MongoDB 排在第4,是非关系型数据库领域的领头羊. 物联网模型抽象 物联网离我们越来越近,这主要得益于云计算和移动互联网技术的发展.物联