zoukankan      html  css  js  c++  java
  • 告别 MongoDB 2.x 拥抱 3.x 版本的5大理由(转)

    据不完全统计,目前还有很多同学在生产环境使用着 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. 更高的服务性能

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

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

    3. 更低的存储成本

    版本MMAPV1WIREDTIGER
    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 鼓励使用

    作者简介

    张友东,阿里巴巴技术专家,主要关注分布式存储、Nosql数据库等技术领域,先后参与TFS(淘宝分布式文件系统)Redis云数据库等项目,目前主要从事MongoDB云数据库的研发工作,致力于让开发者用上最好的MongoDB云服务。

  • 相关阅读:
    BZOJ2821 作诗(Poetize) 【分块】
    BZOJ2724 蒲公英 【分块】
    Codeforces 17E Palisection 【Manacher】
    BZOJ2565 最长双回文串 【Manacher】
    Codeforces 25E Test 【Hash】
    CODEVS3013 单词背诵 【Hash】【MAP】
    HDU2825 Wireless Password 【AC自动机】【状压DP】
    HDU2896 病毒侵袭 【AC自动机】
    HDU3065 病毒侵袭持续中【AC自动机】
    HDU2222 Keywords Search 【AC自动机】
  • 原文地址:https://www.cnblogs.com/Yongzhouunknown/p/6494326.html
Copyright © 2011-2022 走看看