《MongoDB入门教程》第01篇 MongoDB简介
MongoDB
MongoDB 是一个开源、跨平台、分布式文档数据库,属于 NoSQL(Not Only SQL)数据库的一种。
简单易用
MongoDB 是一个面向文档的数据库,使用文档(document)对象存储数据,这种方式比关系型数据库(RDBMS)中的数据行格式更加灵活。
文档可以支持在单个记录中表示复杂的层级关系。
MongoDB 不需要预定义模式结构(schema),可以更加方便快捷地增加或删除文档中的字段。
可扩展
随着数据量的增长,我们将会面临可扩展性的挑战。一般来说,扩展方式有两种:
- 纵向扩展(Scaling up),升级服务器的资源(CPU、RAM 等)。
- 横向扩展(Scaling out),为集群增加更多的服务器。这种方式比纵向扩展更加经济、可扩展性更好,缺点就是管理更加复杂。
MongoDB 天生具有横向扩展性。
MongoDB 可以将数据分布式存储到多个服务器中,同时可以自动管理跨节点的负载均衡,将数据操作路由到相应的服务器。下图演示了 MongoDB 使用 sharding 分片进行横向扩展的示意:
功能丰富
作为一个数据库管理系统,MongoDB 支持数据的插入、更新、删除以及查询。除此之外,MongoDB 还提供了以下功能:
- 索引
- 聚合
- 指定集合与索引的类型
- 文件存储
我们将会在后面的教程中详细介绍这些功能。
高性能
MongoDB 提供了高性能的数据存储,例如,嵌入式数据模型可以减少 I/O 操作,索引可以加速查询。
MongoDB 的理念就是创建一个可扩展、灵活且高性能的全功能数据库。
MongoDB 版本
MongoDB 提供了三种不同的版本:社区版、企业版以及云数据库(Atlas)。
MongoDB 社区版
MongoDB 社区版可以免费使用,支持 Windows、Linux 以及 macOS 平台。
MongoDB 社区版使用(SSPL) 许可证,意味着如果我们将 MongoDB 作为一个公共服务提供给其他人使用,必须开源支持该服务的软件代码,例如管理或者监控该服务的工具。否则,我们需要购买企业版。
如果我们使用 MongoDB 社区版作为应用程序的一个组件,而不是最终的产品,可以免费使用。
MongoDB 企业版
MongoDB 企业版是 MongoDB 的商业版本,也是 MongoDB 企业高级订阅的一部分。
MongoDB 企业版提供了很多社区版不支持的功能,例如:
- 内存(In-Memory)存储引擎
- 审计功能
- Kerberos 认证
- LDAP 代理认证和 LDAP 授权
- 静态加密
MongoDB Atlas
MongoDB Atlas 是一个全球云数据库服务。它是一种数据库即服务(database as a service),可以让我们专注于应用开发,而不是管理数据库。
MongoDB Atlas 支持各种常见的云平台,包括 AWS、Azure 以及 GCP,国内的阿里云、腾讯云也提供了相应的服务。MongoDB Atlas 为个人提供了用于学习的免费数据库服务。
《MongoDB入门教程》第01篇 MongoDB简介相关推荐
- 《SQL 入门教程》第01篇 SQL 简介
<SQL 入门教程>专栏目录 第01篇 SQL 简介 第02篇 查询初体验 第03篇 查询条件 第04篇 结果排序 第05篇 限定结果数量 第06篇 分组与汇总 第07篇 多表连接查询 第 ...
- MongoDB 入门教程实战学习笔记-31-mongo 聚合查询管道 Aggregation Pipieline
aggregation 聚合操作处理数据记录并返回计算结果. 聚合操作将多个文档中的值组合在一起, 并且可以对分组数据执行各种操作以返回单个结果. mongodb 提供了三种执行聚合的方法: 聚合管道 ...
- 【ENVI入门系列】01.ENVI产品简介与入门
[ENVI入门系列]01.ENVI产品简介与入门 (2014-09-22 10:18:21) 转载▼ 标签: 杂谈 分类: ENVI 版权声明:本教程涉及到的数据仅供练习使用,禁止用于商业用途. 目录 ...
- TurboLinux入门教程:第七课TurboLinux简介(转)
TurboLinux入门教程:第七课TurboLinux简介(转) 第七课 TurboLinux简介 TurboLinux是拓林思公司最近发行的linux版本,已在日本和中国取得了巨大的成功,在美国也 ...
- ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区 1 Desktop简介 1.1 ArcGIS for Desktop ...
- Systemd 入门教程:实战篇
Systemd 入门教程:实战篇 原文出处: 阮一峰(@ruanyf) http://blog.jobbole.com/98671/?utm_source=blog.jobbole.com& ...
- Linux Capabilities 入门教程--进阶实战篇
该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...
- Linux Capabilities 入门教程--基础实战篇
该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...
- Systemd入门教程:命令篇
Systemd入门教程:命令篇 转自:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html 作者: 阮一峰 日期: ...
- 深度学习小白入门教程-基础环境篇
深度学习小白入门教程-基础环境篇 如有图片显示失败,请回小主主页查看~ Anaconda 安装包下载方式一:官网(科学上网比较慢,不推荐) 安装包下载方式二:清华镜像(推荐) 具体安装步骤(跟着箭头来 ...
最新文章
- 单片机开发工程师需要学哪些,单片机工作的基本条件
- 5G通信3大场景 来源:elecfans
- 2022年年底前山东将打造30个以上绿色数据中心 逐步淘汰高能耗中小型数据中心...
- Light-Head R-CNN相关资料
- linux时间路径,关于linux中的时间 时区问题
- mysql 备份脚本 linux,LINUX中MySQL如何按时备份脚本
- 线程安全与synchronized
- JavaScript之继承(原型链)
- React组件: 提取图片颜色
- SLAM--求解2D-2D图像间的运动
- CTF web题常用解题工具
- 9针串口RS232、RS485之间的差异
- littleVGL开发(11):任务系统(task)
- 嵌入式系统开发笔记2:Linux的主流发行版本
- Java如何进行Base64的编码(Encode)与解码(Decode)?
- 全新天龙八部:4年积攒更惬意的方法
- SOLIDWORKS有哪些你没用到,但十分好用的冷门小技巧?
- 时间运算函数 CATT_ADD_TO_TIME
- 计算机启动时检测硬盘,取消win7电脑开机检测硬盘的方法
- c++ 使用结构体实现有理数库