一、MongoDB概况
前言:本节笔者带各位伙伴了解MongoDB的概述情况,MongoDB的版本和特点等,各位读者可以了解到MongoDB数据库的使用场景和应用业务场景。
1. MongoDB概述
NOSQL:(NoSQL全名:Not Only SQL,意思为“不仅仅是SQL”),NoSQL是对不同于传统关系数据库的数据库管理系统的统称。
MongoDB 是一个基于分布式文件存储的NoSQL数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
从数据库的发展开始就有了NoSQL数据库,在上世纪90年代到2010年之间,世界上最流行的数据库依然是关系型数据库,并且围绕着关系型数据库开发出了大量的程序应用,又随着移动技术(云计算、大数据)的发展,很多公司不愿意去使用大型的厂商数据库 —— Oracle等,因为这些人已经习惯于使用MySQL数据库,这些人发现在大数据以及云计算的环境下,数据存储受到了很大的挑战,后来就开始重新进行了NoSQL数据库的开发,但是经过长期的开发发现NoSQL数据库依然不可能离开传统的关系型数据库。
传统的关系型数据库一定存放大量的冗余数据,导致查询效率降低,脏数据较多,不合理;而MongoDB数据库中,可以直接在业务层中的数据(一般为JSON)交给NoSQL数据库保存,按照指定的结构(人为定义)进行存储。
2. MongoDB和关系型数据库的对比
在MongoDB数据库之中与Oracle数据库有如下的概念定义:
| No. | 关系型数据库 | NoSQL数据库(MongoDB) |
|---|---|---|
| 1 | 数据库 | 数据库(类似于MySQL) |
| 2 | 表 | 集合 |
| 3 | 行 | 文档 |
| 4 | 列 | 成员 |
| 5 | 主键 | Object ID(自动维护) |
3. MongoDB的特点
1、面向集合的存储过程;
2、模式自由(无模式);
3、方便的进行数据的存储扩充;
4、支持索引;
5、支持短暂数据保留;
6、具备完整的数据库状态监控;
7、基于BSON应用;
4. MongoDB版本
mongodb截止发布最新开发版本为4.4.0,文档版本为V4.2.6。V4.2主要特性如下:
-
全文搜索
MongoDB 4.2 之前,全文搜索(Full Text Search)的能力是靠 Text Index 来支持的,在 MongoDB-4.2 里,MongoDB 直接与 Lucene 等引擎整合,在 Atlas 服务里提供全文建索的能力。
-
分布式事务
目前具备这个能力的开源数据库本身也不多,MongoDB 采用二阶段提交的方式(细节以后再分析),实现在多个 Shard 间发生的修改,要么同时发生,要么都不发生,保证事务的 ACID 特性。
-
Index 能力增强(Wildcard Index)
MongoDB 4.2 引入 Wildcard Index,可以针对一系列的字段自动建索引,满足丰富的查询需求。
-
Field Level Encrytion
MongoDB 除了支持 SSL、TDE 等安全机制,在 4.2 引入「字段级加密」的支持,实现对用户JSON文档的Value 进行自动加密。整个过程在 Driver 层完成,传输、存储到服务端的文档Value都是密文,MongoDB 4.2 Drvier 支持丰富的加密策略,可以针对集合、字段维度开启加密,加密过程对开发者完全透明。
-
通过单个 Kubernetes 平面实现完全控制
Kubernetes 是工业级的容器编排管理平台,可以使用 Kubernetes 管理 MongoDB 集群的整个生命周期,但随着业务部署环境越来越复杂多样化,有的可能是私有云部署、有的是公有云的部署,使得集群的管理难度也越来越高。
-
MongoDB Chart
MongoDB Chart 在去年的 MongoDB World 已经介绍过了,今年有做了多方面的增强,算得上是一个功能比较完备的 BI 分析工具了。有了 Charts,MongoDB 也无需支持 SQL 来去对接 BI 工具了。
