MongoDB 4.0至7.0:这些主版本更新带来了哪些关键特性与性能飞跃?

一、mongodb7.0更新

MongoDB 7.0 版本是一个重大更新,以下是一些关键的更新内容:

  1. 性能提升:在WT引擎层面对compact命令进行了优化,大幅提升了性能,降低了执行期间受eviction压力而失败的概率。
  2. 分片键分析:从7.0版本开始,MongoDB支持基于采样查询的结果来分析集合的分片键是否合理,帮助设计更优的Schema以及分片键。
  3. 可查询加密(Queryable Encryption):7.0版本引入了可查询加密,确保敏感数据在传输、静止、使用、日志和备份中都是加密的,只在客户端解密,提供了强大的数据安全保障。
  4. 元数据一致性检查:7.0版本能够在数据库维护或异常结束后主动发现潜在的元数据/索引不一致风险。
  5. ChangeStream支持超大变更事件:新增了$changeStreamSplitLargeEvent算子,支持对超过16 MB的超大变更事件进行切分,解决了之前版本中ChangeStream无法支持超大变更事件的问题。
  6. WT引擎动态限流:7.0版本自动动态调整WT存储引擎的事务并发度,缓解了数据库异常后因请求堆积而导致的问题。
  7. 开发简化:增强了查询语言,包括操作符、变量和索引,允许在MongoDB中直接执行多种数值运算和高性能查询,提升工作效率。
  8. 简化迁移:使迁移和系统间的数据同步变得更简单,帮助从传统关系型数据库业务负载转移到MongoDB。
  9. 安全性:MongoDB 7.0作为能够快速实施可搜索加密方案的领先平台,允许在加密资料不解密的情况下进行查询。
  10. 备份和恢复功能改进:确保数据安全,并驱动数据备份和恢复功能的改进。

二、mongodb6.0更新

MongoDB 6.0 版本是一个主要的更新,以下是一些重要的更新内容:

  1. 时序集合增强:MongoDB 6.0 在时序集合方面进行了增强,包括引入了二级和复合索引以提高读取性能,以及对时序数据的地理位置索引支持,使得开发人员可以更好地分析涉及距离和位置的场景。
  2. Change Stream增强:Change Stream 功能得到了重大更新,包括支持变更的前后视图(pre-image和post-image),支持更多的DDL操作,性能提升,以及新增了wallTime字段。
  3. 可查询加密(Queryable Encryption):这是一个新的功能,允许用户从客户端加密敏感数据,并在数据库服务器端以加密形式存储和查询这些数据,提供了强大的数据隐私保护能力。
  4. 聚合功能增强:MongoDB 6.0 在聚合功能上进行了深耕,包括改进了 $lookup$graphLookup 操作符,以及新增了一些查询操作符如 $maxN$topN$minN$bottomN$lastN$sortArray 等。
  5. 集群同步(Cluster-to-Cluster Sync):MongoDB 6.0 引入了新的同步工具 mongosync,支持跨实例数据同步,允许用户实时控制和监控整个同步过程。
  6. 安全性:MongoDB 6.0 在安全性方面进行了增强,客户端字段级加密(CSFLE)功能支持了更多密钥管理提供商,增强了数据安全性。
  7. 弹性:MongoDB 6.0 调整了数据块(Chunk)的默认大小,并支持自动整理分片集合的磁盘空间碎片,提高了系统的弹性和效率。
  8. 兼容性和升级:MongoDB 6.0 是与 MongoDB Atlas 和本地部署都支持的主要版本,包括了先前快速发布版本中的更改,并提供了详细的升级说明和兼容性信息。

三、mongodb5.0更新

MongoDB 5.0 引入的新功能和改进,以下是一些主要的更新内容:

  1. 时序集合(Time-Series Collections):MongoDB 5.0 引入了对时序数据的原生支持,允许用户更高效地存储和查询时间序列数据。时序集合针对时间序列数据做了特定的优化,可以提高查询效率并减少数据和索引的磁盘使用量。
  2. 修改了默认的写参数:MongoDB 5.0 将默认的写关注(write concern)从 {w:1} 改为了 {w:"majority"},这意味着写入操作需要被大多数节点确认后才返回成功,从而提供了更强的数据一致性保证。
  3. 动态修改分片键(Dynamic Resharding):5.0 版本提供了 reshardCollection 命令,允许用户在线修改集合的分片键,而不需要停机或使用复杂的迁移工具。
  4. 快照读(Snapshot Reads):新版本增强了快照读功能,允许在普通的 findaggregatedistinct 命令中使用快照读参数,提高了事务性支持。
  5. isMaster 命令重命名isMaster 命令被 hello 命令替代,这可能会影响到依赖 isMaster 命令进行自动发现的客户端。
  6. Change Streams 新增事件:Change Streams 功能新增了 truncatedArrays 事件,记录对数组的截断操作,增强了对数据变更的捕捉能力。
  7. MongoDB Shell 项目废弃:新的 MongoDB 命令行客户端 mongosh 成为默认客户端,MongoDB Shell 将停止支持。
  8. 读性能提升:新版本不再受独占锁的影响,提升了特定场景下的读性能。
  9. 聚合查询功能增加:提供了额外的聚合操作符,如 setWindowFields,允许在窗口中进行计算。
  10. 升级须知:5.0 版本包含一些对旧版本不兼容的特性,需要通过 featureCompatibilityVersion 参数进行设置。

四、mongodb4.0更新

MongoDB 4.0 版本引入的新特性和改进,主要包括:

  1. 事务支持:MongoDB 4.0 引入了多文档事务的支持,允许在单个操作中包含多个文档的读写,这对于需要原子性操作的应用程序非常有用。
  2. 聚合管道的增强:新增了多个聚合管道操作符,增强了数据处理能力。
  3. 更新的索引:MongoDB 4.0 引入了新的索引类型和索引管理的改进,包括对现有索引的增强和新的索引选项,以提高查询性能。
  4. WiredTiger存储引擎的改进:提供了对WiredTiger存储引擎的多项改进,包括对压缩、内存使用和写入路径的优化。
  5. 更好的分片支持:增强了分片集群的配置和管理,包括对chunk大小和分布的改进。
  6. 安全性的增强:MongoDB 4.0 增加了对安全特性的支持,如对TLS/SSL协议的改进,以及对用户认证和授权的加强。
  7. 对JSON Schema的支持:MongoDB 4.0 开始支持JSON Schema,允许用户定义数据结构和验证规则,以确保数据的一致性和正确性。
  8. 改进的查询优化器:MongoDB 4.0 对查询优化器进行了改进,以提供更高效的查询计划和更好的性能。
  9. TTL索引的改进:引入了对TTL(Time-To-Live)索引的改进,允许自动清理过期数据。
  10. 对Windows平台的支持:MongoDB 4.0 改善了对Windows平台的支持,包括对Windows服务的改进。

延展阅读:

Mongo性能优化实战:如何通过WiredTiger引擎提升MongoDB的性能和数据安全性

为什么PHP在近年来逐渐失去了领先地位,而GoLang却迅速崛起?

为什么要用Doris替换掉ClickHouse?

ClickHouse还是Doris?如何选择适合的实时分析数据库?

如何利用KtConnect简化Kubernetes开发调试?

咨询方案 获取更多方案详情                        
(0)
研发专家-Halk研发专家-Halk
上一篇 2024年7月2日 上午11:45
下一篇 2024年7月2日 下午3:51

相关推荐