MongoDB数据库版本区别
v4.2 新特性如下:
v4.2.19 - 2022年3月7日
v4.2.3 - 2020年1月27日
①分布式事务(Distributed Transactions)
事务从跨文档事务级别,扩展到分片集群的分布式事务级别。
有了分布式事务,MongoDB现在可以支持大多数业务场景,比如极端数据一致性要求的电商、支付、订单等场景:文档级ACID事务,跨多文档事务,到全局分布式集群事务。
②字段级加密(Client Side Field Level Encryption)
全库加密比较简单,很多数据库也开始支持,但是字段级加密,复杂度比较高,但是加密策略会更加灵活,很多时候只需要对敏感字段加密,比如价格,或者供应商的手机号加密。
使用此功能,服务器不知道要加密的字段。所有加密和解密都在驱动程序级别完成。
③通配符索引(Wildcard Indexing)
Mongodb4.2新增的通配符索引,也比较特殊,说白了就是某个字段不确定,某些字段确定,但是可能需要针对不确定的字段做快速搜索匹配,这个和全文索引差别还比较大,应该是为Document级别的数据提供了更多的索引灵活度。
轻量级APP平台可以基于MongoDB快速实现。而又不需要ES这种全文搜索的海量数据规模。一定程度上降低了数据搜索的体量。
④按需物化视图(Materialized Views)
这个功能特性的目的,就是缓存计算结果,以便于后期高并发反复使用此前的计算结果。达到改善数据库性能的目的。
再提一个优点,物化视图可以分片存储,并且可以完全控制视图的更新时间。
详细了解的可通过下方博客或官方发行说明
MongoDB 4.2 新特性 blog.csdn.net/dingtingjia…
MongoDB 4.2 发行说明 www.mongodb.com/docs/manual…
v4.4 新特性
v4.4.13 - 2022 年 3 月 7 日
注意:从4.4版本之后,server和MongoDB Database Tools(mongodum/mongorestore...) 分开发布;并且tools遵循自有版本号:从100.0.0开始,目前是100.5.2。意味着 bin目录下mongorestore和mongodump,需要从 Database Tools包里获取。
①可用性和容错性增强
MongoDB 提供了[Mirrored Reads]功能,即,主库会按一定的比例把读流量复制到备库上执行,来帮助备库预热缓存。
MongoDB 提供了[Resumable Initial Sync]功能,因网络异常导致全量同步中断情况下,从中断位置恢复全量同步的能力。
MongoDB 提供了[Time-Based Oplog Retention]功能,支持storage.oplogMinRetentionHours参数定义最少保留的Oplog时长,也可以通过replSetResizeOplog命令在线修改这个值。
②扩展性和性能增强
MongoDB 提供了[Hidden Indexes]功能,解决因错误删除低效率索引带来业务性能的抖动,而重建索引往往代价也非常大。
MongoDB 提供了[Refinable Shard Keys]功能,当使用 MongoDB 分片集群时,efineCollectionShardKey 命令给现有的 Shard Key 增加一个或多个 Suffix Field 来改善现有的文档在 Chunk 上的分布问题。
MongoDB 提供了[Compound Hashed Shard Keys]功能,支持了复合哈希索引。
MongoDB 提供了[Hedged Reads]功能,在分片集群场景下,mongos 会把一个读请求同时发送到某个分片的两个副本集成员,然后选择最快的返回结果回复客户端,来减少业务上的 P95 和 P99 延迟。
③降低复制延迟
MongoDB 提供了[Streaming Replication]功能,在 4.4 中,增量的 Oplog 是不断的“流向”备库的,而不是依靠备库主动轮询,相比于之前的方式,至少在 Oplog 获取上节省了一半的 RTT。
MongoDB 提供了[Simultaneous Indexing]功能,主库和备库上的索引创建操作是同时进行的,可以大幅减少主备延迟,尽量保证即使在索引创建过程中,备库读也可以访问到最新的数据。
④查询能力和易用性增强
MongoDB 提供了[Union]功能,在4.4中新增的$unionWithstage又提供了类似SQL中的「unionall」功能,用户把两个集合中的数据聚合到一个结果集中,然后做指定的查询和过滤。
MongoDB 提供了[Custom Aggregation Expressions]功能, 提供了两个新的 Aggregation Pipeline Operator,function 用来取代 $where operator 和 MapReduce。
⑤其他易用性增强
MongoDB 提供了[Some Other New Aggregation Operators and Expressions]功能,新增了其他多个 Aggregation Pipeline Operator,比如做字符串处理的,获取数组收尾元素的,还有用来获取文档或二进制串大小的操作符。
MongoDB 提供了[Connection Monitoring and Pooling]功能,4.4 的 Driver 中增加了对客户端连接池的行为监控和自定义配置,通过标准的 API 来订阅和连接池相关的事件,包括连接的关闭和打开,连接池的清理。
MongoDB 提供了[Global Read and Write Concerns]功能,可以通过setDefaultRWConcern命令来配置全局默认的readConcern和writeConcern,也可以通过 getDefaultRWConcern 命令获取当前默认的readConcern 和 writeConcern。
MongoDB 提供了[New MongoDB Shell (beta)]功能,4.4 提供了新版本的 mongo shell,增加了像代码高亮,命令自动补全,更加可读的错误信息等非常人性化的功能,不过,目前还是 beta 版本,很多命令还不支持,仅供尝鲜。
详细了解的可通过下方博客或官方发行说明
MongoDB 4.4 新特性 baijiahao.baidu.com/s?id=168438…
MongoDB 4.4 发行说明 www.mongodb.com/docs/manual…
v5.0 新特性
v5.0.7 - 2022 年 4 月 11 日
①原生时间序列平台
MongoDB 5.0通过原生支持整个时间序列数据的生命周期(从采集、存储、查询、实时分析和可视化,到在线归档或随着数据老化自动失效),使构建和运行时间序列应用程序的速度更快、成本更低。
②在线数据重新分片
详见博客
③版本化API
版本化API定义了应用程序最常用的一组命令和参数(无论是数据库在年度重大发布还是季度快速发布期间,这些命令均不会改变),可以将驱动程序固定在MongoDB API的特定版本上,即使数据库发生升级和改进,您的应用程序将可以继续运行数年而不需要修改代码。
④Write Concern默认Majority级别
⑤连接管理优化
限制在任何时候驱动程序尝试创建的连接数量,以简单有效的方式防止数据库服务器过载。
⑥长时间运行的快照查询
⑦新版MongoDB Shell
新版MongoDB Shell已经成为MongoDB平台的默认shell。新版MongoDB Shell引入了语法高亮、智能自动完成、上下文帮助和有用的错误信息,为您创造一个直观、互动的体验。
⑧PyMongoArrow与数据科学
可以在MongoDB上使用Python运行复杂的分析和机器学习。
⑨Schema验证改进
模式验证变得更加简单和友好,当操作验证失败时都会产生描述性的错误信息。
⑩可恢复的索引创建任务
支持将正在进行中的索引创建任务在节点重新启动后自动会恢复至原来的位置,减少计划中维护动作对业务的影响。
⑪版本发布调整
所以从MongoDB 5.0开始,MongoDB发布的版本将分为Marjor Release(大版本)和Rapid Releases(快速发布版本),其中Rapid Releases作为开发版本提供下载和测试体验,但不建议用在生产环境。
详细了解的可通过下方博客或官方发行说明
MongoDB 5.0 新特性 baijiahao.baidu.com/s?id=171223…
MongoDB 5.0 发行说明 www.mongodb.com/docs/manual…