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格式,因此能够存储比 ...
随机推荐
- python+requests+unittest+htmltestrunner+Excel生成接口自动化的测试框架
Python+Requests+Unittest+Excel+HtmltestRunner生成自动化测试框架 流程 1.接口文档 2.读取接口文档 3.封装request的类 4.unittest类 ...
- 【奥运会】yahoo的这个骚操作令人费解。。。
昨天在朋友圈发了一张截图,貌似很多朋友没有 get 到点,我也实在搞不懂 Yahoo 的这波操作. 默认排序是按照金牌总数,那必然是美国第一名了.不过习惯上不应该是按照金牌总数进行排名吗?毕竟金银铜牌 ...
- 用户 IP,里面藏了多少秘密?
大家都知道,要邮寄一封信给正确的收件人,需要提供准确而精细的地址,这个地址需要从国家和城市精确到邮政编码,街道和门牌号码.只有这样,邮局的工作人员才能知道将信送到那里. Internet 上也是如此, ...
- JSP | JSP 动作详解
原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本篇学习自:C语言中文网,部分内容转载仅供学习使用. \[QAQ \] JSP 动作利用 XML ...
- secure boot (一)fit image
前言 secure boot 和FIT Image是前段时间接触到的,其实早就该总结下了,奈何懒癌犯了,拖了好久才写出来. 之前也有人问我,工作后最大的感受是什么?我的回答是:"快速学习&q ...
- uni-app返回上一级,页面不刷新,bug
uniapp 生命周期(onLoad跟onLoadonShow的区别) 一.uniapp生命周期分两种 : 1.应用生命周期:仅可在App.vue中监听,在其它页面监听无效. 2.页面生命周期:仅在p ...
- C# 用树形列表 动态 显示菜单
如图 页面加载 private void Form1_Load(object sender, EventArgs e) { GetMenu(treeView1, menuStrip1);//将menu ...
- C#查找算法2:插值查找
插值查找,有序表的一种查找方式.插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法.插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率. 原理: (midInd ...
- Go 疑难杂症汇总
1. revision v0.0.0: unknown revision v0.0.0 go get -u github.com/uudashr/gopkgs/cmd/gopkgs 报错: [root ...
- Linux 系统安全加固经验总结
本文为博主原创,转载请注明出处: 目录 1. 禁止root密码登录 2. linux 用户密钥复杂度及有效期设置 3. 检查sudo权限 4.关闭ftp 5.设置文件的属主并指定读写执行权限 6.管 ...