大家好,我是 JiekeXu,江湖人称“强哥”,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、KCP 等众多国产数据库认证证书,今天和大家一起来看看MongoDB 发展历史及各主要版本新特性概述,欢迎点击最上方蓝字“JiekeXu DBA之路”关注我的微信公众号,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!
前 言
随着大数据时代的到来,数据模型设计已成为构建高效、可扩展数据库系统的关键。而 MongoDB 作为最受欢迎的 NoSQL 数据库之一(在本月的 db-engines 排行榜上排名第 5,文档型数据库中排名第一),因其灵活性和高性能而被广泛应用于各种企业级应用。然而,如何设计一个符合业务需求、同时又能充分发挥 MongoDB 特性的数据模型,却往往是许多技术人员面临的挑战。
https://db-engines.com/en/ranking
正 文
MongoDB
是一款强大的、灵活的、易于扩展的通用数据库,广泛应用于各种现代应用程序中。从最初 2007 年的 1.0 版本到今年 10 月份发布的最新的
8.0.3 版本,MongoDB 不断发展,引入了许多重要的新特性和优化。MongoDB 起源于 2007 年,当时由 Dwight
Merriman,Eliot Horowitz 和 Kevin Ryan 共同创立的 10gen 公司推出的一种新的数据库解决方案。10gen
公司于 2013 年 2 月更改名称为 MongoDB Inc.,目前已着重发展和改进MongoDB 系统。
在讲述发展历史之前呢,这里插播一个 MongoDB 数据建模的抽奖送书活动:
《MongoDB数据建模和模式设计》为数据建模开启全新视角(送书福利)
另外还有一个分布式中间件的抽奖送书活动:
什么是 ShardingSphere(文末福利)
以下是 MongoDB 的发展历史及各主要版本的新特性概述。
发展历史
1. 早期版本(2009-2012)
2009年:MongoDB 1.0 版本发布,标志着 MongoDB 正式进入市场。
2010年:MongoDB 1.6 版本引入了分片(Sharding)功能,支持水平扩展。
2011年:MongoDB 2.0 版本发布,引入了 GridFS 文件存储系统和更强大的聚合框架。
2012年:MongoDB 2.2 版本引入了 Aggregation Framework,提供了更强大的数据处理能力。
2. 成熟期(2013-2016)
2013年:MongoDB 2.4 版本引入了文本搜索功能,支持全文搜索。
2014年:MongoDB 2.6 版本引入了 WiredTiger 存储引擎,显著提升了性能和可扩展性。
2015年:MongoDB 3.0 版本发布,引入了 WiredTiger 存储引擎的全面支持,提升了事务处理能力和性能。
2016年:MongoDB 3.2 版本引入了 Change Streams,支持实时数据流处理。
3. 增强期(2017-2020)
2017年:MongoDB 3.4 版本引入了多文档事务支持,进一步增强了数据一致性。
2018年:MongoDB 3.6 版本引入了 Sessions 和 Causal Consistency,支持更复杂的事务处理。
2019年:MongoDB 4.0 版本发布,全面支持多文档事务,实现了从 NoSQL 到 NewSQL 的跨越。
2020年:MongoDB 4.2 版本引入了分布式事务、字段级加密、可重试读等重要特性。
4. 创新期(2021-至今)
2021年:MongoDB 5.0 版本发布,引入了原生时间序列数据平台、在线重新分片、版本化 API 等新特性。
2022年:MongoDB 6.0 版本发布,引入了可查询加密、集群同步、时序集合等新特性。
2023年:MongoDB 7.0 版本发布,引入了分片元数据一致性校验、采样查询与分析分片键、自动合并等新特性。
2024年:MongoDB 8.0 版本发布,走向融合,支持向量搜索、时间序列、全文搜索、实时分析、流式处理、OLTP等等。
主要版本新特性
MongoDB 4.2
分布式事务:采用二段提交方式,保证分片集群事务的 ACID 特性。
字段级加密:驱动层面支持字段级加密,提升业务灵活性和安全性。
可重试读:提供弱网环境下自动重试能力,保证业务连续性。
通配符索引:支持创建通配符索引,覆盖一个文档下的多个特征字段,管理更方便,使用更灵活。
物化视图:通过最新的物化视图可以缓存计算结果,避免每次重复计算,提升运行效率,减少逻辑复杂度。
MongoDB 5.0
原生时间序列数据平台:支持时序数据,提供时间序列集合、集群索引等能力,扩展了 MongoDB 在物联网、金融行业、监控系统、日志解析、财务分析等业务场景的应用。
在线数据重新分片:支持在业务运行的情况下,通过
reshardCollection
命令按需更改集合的分片键,整个过程无需停机或进行复杂的迁移。版本化 API:定义了应用程序最常用的一组命令和参数,确保应用程序在数据库版本升级时的兼容性。
新版 MongoDB Shell:重新设计了 MongoDB Shell,引入了语法高亮、智能自助上下文帮助和有用的错误信息,提供了一个更现代化的命令行体验。
Write Concern 策略默认值调整:默认为 w=majority
,增强数据的可靠性。
MongoDB 6.0
可查询加密:支持对特定字段进行加密,确保敏感数据的安全性。
集群同步:支持跨集群的数据同步,提升数据冗余和高可用性。
时序集合:进一步优化了时序数据的处理能力,提供更高效的存储和查询。
变更流:增强变更流功能,支持更复杂的实时数据处理场景。
聚合:引入了新的聚合运算符和功能,提升数据处理能力。
MongoDB 7.0
支持分片元数据一致性校验:确保分片元数据的一致性,提升系统的可靠性和稳定性。
支持采样查询与分析分片键:提供采样查询功能,帮助用户分析和优化分片键。
自动合并:自动合并分片,简化管理和维护。
优化项:包括安全性、聚合、时序集合、分片等方面的优化,提升整体性能和用户体验。
MongoDB 8.0
走向融合,支持向量搜索、时间序列、全文搜索、实时分析、流式处理、OLTP等等,更多新特性请查看官方文档 https://www.mongodb.com/zh-cn/docs/manual/release-notes/8.0/
注意:从 MongoDB 8.0 开始,新的 MongoDB Server 版本(主要版本和次要版本)支持操作系统(OS)供应商定义的最低操作系统次要版本。当操作系统供应商不再支持某个操作系统次要版本之后,MongoDB 会更新 MongoDB Server,以支持下一个操作系统次要版本。
MongoDB 8.0 支持以下最低操作系统次要版本:
Red Hat Enterprise Linux 8.8
Red Hat Enterprise Linux 9.3
SUSE Linux Enterprise Server 15 SP5
Amazon Linux 2023 版本 2023.3
MongoDB 版本控制
MongoDB 版本控制采用 X.Y.Z
形式,其中的 X.Y
是指版本系列,Z
是指补丁号。
从 MongoDB 5.0 开始,MongoDB 以两个不同的版本系列形式发布:
主要发布版本
快速发布
对于 MongoDB 4.4 及之前版本,MongoDB 使用生产/开发版本控制系统。请参阅历史版本。
主要发布版本
主要版本大约每年发布一次,会引入新功能和相关改进。MongoDB Atlas 和本地部署支持主要版本。
示例版本:
5.0
6.0
快速发布
快速发布版本大约每季度发布一次,它不包含主要版本,会引入新的功能和改进。只有 MongoDB Atlas 支持快速发布,本地部署不支持。
快速发布版本不可与 MongoDB Ops Manager 一起使用。
示例版本:
5.1
5.2
5.3
补丁版本
主要版本和快速发布版本均可根据需要提供补丁版本。补丁版本通常包括错误修复和细微改进。
示例版本:
5.0.1
(主要发布版本的补丁版本)5.2.1
(快速发布补丁版本)
发布候选 (RC) 版本
在新的主要版本和快速发布之前,候选发布版本可供早期测试。候选发布版本代表即将发布的版本,其稳定性足以开始测试,但不适合用于生产部署。
示例版本:
5.0.0-rc0
5.0.0-rc1
5.1.2-rc5
驱动程序版本
MongoDB 的版本编号系统与 MongoDB 驱动程序使用的系统不同。
MongoDB Shell (mongosh
)
从 MongoDB 5.0 开始,MongoDB Shell (mongosh
) 与 MongoDB Server 分开发布,并使用自己的版本编号系统。
Database Tools
MongoDB Database Tools 与 MongoDB Server 分开发布,并使用自己的版本编号系统。
历史版本
对于 MongoDB 4.4 及更早版本,MongoDB 版本控制使用生产/开发版本控制方案,并采用 X.Y.Z
形式;其中 X.Y
指代版本系列或开发系列,而 Z
则指补丁版本号。
如果
Y
为偶数,则X.Y
指的是版本系列;例如,4.2
版本系列和4.4
版本系列。发布系列 稳定 ,适合生产。如果
Y
是奇数,则X.Y
表示开发系列;例如,4.3
开发系列和4.5
开发系列。开发系列仅用于测试环境,不用于生产环境。
例如,在 MongoDB 4.4.7
版本中,4.4
是指版本系列,而 .7
是指补丁版本。
另见:Redhat 7.7 安装最新版 MongoDB 5.0.1 手册
全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
分享几个数据库备份脚本
一文搞懂 Oracle 统计信息
我的 Oracle ACE 心路历程
MOP 系列|MOP 三种主流数据库索引简介
Oracle 主流版本不同架构下的静默安装指南
关机重启导致 ASM 磁盘丢失数据库无法启动
Oracle SQL 性能分析(SPA)原理与实战演练
Oracle 11g 升级到 19c 需要关注的几个问题
Windows 10 环境下 MySQL 8.0.33 安装指南
SQL 大全(四)|数据库迁移升级时常用 SQL 语句
OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)
Oracle 大数据量导出工具——sqluldr2 的安装与使用
Oracle ACE 视角下的国产数据库现状与选型及应对策略
从国产数据库调研报告中你都能了解哪些信息及我的总结建议
使用数据泵利用 rowid 分片导出导入 lob 大表及最佳实践
在归档模式下直接 rm dbf 数据文件并重启数据库还有救吗?
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107——————————————————————————