MongoDB 选型介绍
什么是 MongoDB
前言
MongoDB 是一个开源、高性能、无模式的以 JSON 为数据模型的文档数据库,是 NoSQL 数据库产品的一种。
MongoDB 中记录的是一个文档,由字段和键值对组成的数据结构。MongoDB 文档类似于 JSON 对象,字段的值可以包括其它文档,数组和文档数组。

使用文档的优点:
1、文档(即对象)对应于许多编程语言中的内置数据类型;
2、嵌入式文档和数组减少了对昂贵连接的需求;
3、动态模式支持流畅的多态性。
MongoDB 的主要特性
1、高性能
MongoDB 提供高性能的数据持久化。
对嵌入式数据模型的支持能够减少数据库系统上的 I/0 操作;
支持索引查询,嵌入式文档和数组的键也支持索引的创建。
2、丰富的查询语句
MongoDB 支持丰富的查询语句,除了简单的 CRUD 操作,还支持复杂的查询类似 数据聚合,文本搜索和地理空间搜索。
3、高可用
MongoDB 中的副本集给 MongoDB 提供了冗余和数据高可用的特性。
4、水平扩展
MongoDB 中支持分片保证了 MongoDB
当数据量很大的时候有两种方式解决:
1、垂直扩展,增加单机 CPU、内存等;
2、水平扩展,将数据分散到不同机器上,分摊数据压力。
MongoDB 除了支持垂直扩展,MongoDB 中的 Sharded Cluster 集群实现了水平扩展的能力。
MongoDB 对比关系型数据库 MySQL
| MongoDB | MySQL | |
|---|---|---|
| 数据模型 | 文档模型 | 关系模型 |
| 存储方式 | 以类json的文档格式存储 | 不同的存储引擎有自己的存储方式 |
| 高可用 | 复制集 | 集群模式 |
| 横向扩展能力 | 通过原生分片完善支持 | 数据分区或者应用侵入式 |
| 数据容量 | 没有理论上限 | 千万,亿 |
| join操作 | MongoDB没有Join | MySQL支持join |
什么时候考虑 MongoDB
下面几种数据场景可能就适合用于 MongoDB 来进行存储
1、数据量大;
2、读写操作频繁;
3、价值较低的数据,对事务性要求不高。
相应的就是不适用的场景
1、高度的事务性的不适合;
2、复杂的跨表级别的不适合。
参考
【MongoDB简介】https://docs.mongoing.com/mongo-introduction
MongoDB 选型介绍的更多相关文章
- MongoDB应用介绍之前
MongoDb企业应用实战(一) 写在MongoDB应用介绍之前 故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常 ...
- mongodb选型问题
一.Mongodb的介绍 MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便. MongoDB工作在收集和文件的概念. 数据库 数据库是一个物理容器集合.每个数据库都 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍
作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载. 萌芽阶段 很久之前就开始打算整理一下自己的技术博客了,由于各种原因(借口 ...
- MongoDB shell 介绍
MongoDB shell 介绍 MongoDB自带javascript shell, 可在shell中使用命令行与MongoDB实列交互.shell可以执行管理操作,检查运行实列等等操作. 一:如何 ...
- MongoDb企业应用实战(一) 写在MongoDb应用介绍之前(i)
故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常感谢我在第一家公司帮助我进步的兄弟(我在时的项目经理,现为 x 知名 ...
- MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(ii)
上一篇: MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(i) 有段时间没跟大家去分享和探讨过一些问题,分享过一些经验了(失败过的,痛苦过的才最有看点啊,不知道各位同仁们怎么去看这个 ...
- MongoDB的介绍安装与基本使用
MongoDB的介绍安装 关于MongoDB的介绍于安装可参考:https://www.cnblogs.com/DragonFire/p/9135630.html 除了官网下载,可以下载他人下载好分享 ...
- MongoDB入门(介绍、安装、增删改查)
文章作者公众号bigsai,已收录在回车课堂,如有帮助还请不吝啬点个赞赞支持一下! 课程导学 大家好我是bigsai,我们都学过数据库,但你可能更熟悉关系(型)数据库例如MySQL,SQL SERVE ...
- Python MongoDB使用介绍
MongoDB介绍 MongoDB是一个面向文档的,开源数据库程序,它平台无关.MongoDB像其他一些NoSQL数据库(但不是全部!)使用JSON结构的文档存储数据.这是使得数据非常灵活,不需要的S ...
- MongoDB(两)mongoDB基本介绍
MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库其中功能最丰富,最像关系数据库的.他支持的数据结构很的松散,是类似json的bjson格式,因此能够存储比 ...
随机推荐
- PPT 放映时字体缺失怎么办
PPT 放映时字体缺失怎么办 文字转成图片 嵌入字体 没有版权的不给嵌入 安装字体 http://www.hellofont.cn 在线使用安装字体
- MB21 预留
1.MB21创建预留 1.1MB21前台操作 输入物料等信息,保存即可 1.2调用BAPI:BAPI_RESERVATION_CREATE1 "----------------------- ...
- MB01 BAPI_GOODSMVT_CREATE退货
"-----------------------------------------@斌将军--------------------------------------------DATA: ...
- 它来了!真正的 python 多线程
哈喽大家好,我是咸鱼 几天前,IBM 工程师 Martin Heinz 发文表示 python 3.12 版本回引入"Per-Interpreter GIL",有了这个 Per-I ...
- vivo 大规模特征存储实践
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/u1LrIBtY6wNVE9lzvKXWjA作者:黄伟锋 本文旨在介绍 vivo 内部的特征存储 ...
- 【调试】ftrace(三)trace-cmd和kernelshark
之前使用ftrace的时候需要一系列的配置,使用起来有点繁琐,这里推荐一个ftrace的一个前端工具,它就是trace-cmd trace-cmd安装教程 安装trace-cmd及其依赖库 git c ...
- C# Redis的五大数据结构相关操作及应用场景
Cache和NoSql.Redis ServiceStack.Redis 下面额代码类均是通过 ServiceStack.Redis 来对Redis进行各种操作 redis 文件配置类 /// < ...
- plsqll连接Oracle的两种方式
第一种方式:配置tnsnames.ora 找到plsql软件根目录 下的配置文件
- 如何使用单纯的`WebAssembly`
一般来说在.net core使用WebAssembly 都是Blazor ,但是Blazor渲染界面,.net core也提供单纯的WebAssembly这篇博客我将讲解如何使用单纯的WebAssem ...
- R语言—数据基础及练习
## 创建leadership数据框 manager <- c(1,2,3,4,5) date <-c("10/24/08","10/28/08", ...