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格式,因此能够存储比 ...
随机推荐
- 配置阿里云docker镜像加速
配置好后 重新加载一下 daemon [root@centos-linux jimmy]# systemctl daemon-reload [root@centos-linux jimmy]# sys ...
- mac下python3.7安装mysqlclient出错解决
错误信息 Building wheel for mysqlclient (setup.py) ... error ERROR: Command errored out with exit status ...
- .NET Moq mock internal类型
问题 Can not create proxy for type xxx because type xxx is not accessible. Make it public, or internal ...
- 详解 SSL(一):网址栏的小绿锁有什么意义?
随着互联网的飞速发展,用户信息泄漏.数据泄露等安全问题的事件频繁发生.这一切不一定是网站的问题,有时候可能是自己不经意间泄露了自己的信息.例如钓鱼网站就是日常生活中比较常见的,钓鱼网站和真实网站差别细 ...
- [kuangbin]专题九 连通图 题解+总结
kuangbin专题链接:https://vjudge.net/article/752 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioTian ...
- 2016年第七届 蓝桥杯B组C/C++ 决赛题解
1.一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里. 矿车停在平直的废弃的轨道上. 他的面前是两个按钮,分别写着"F"和"B". 小明突然记起来,这 ...
- Redis 缓存性能实践及总结
一.前言 在互联网应用中,缓存成为高并发架构的关键组件.这篇博客主要介绍缓存使用的典型场景.实操案例分析.Redis使用规范及常规 Redis 监控. 二.常见缓存对比 常见的缓存方案,有本地缓存,包 ...
- <vue 路由 2、router-link标签属性>
说明:在上一节的工程下继续讲解 一. 知识点说明 上一节中, <router-link>我们只是使用了一个属性: to, 用于指定跳转的路径.<router-link> ...
- [Vue] Computed property "XXX" was assigned to but it has no setter.
阅读这篇文章:https://blog.csdn.net/weixin_34090562/article/details/91369638 全选,通过计算属性计算得来.结果报错Computed pro ...
- TICK 中Kapacitor功能和使用说明
转载请注明出处: 1.Kapacitor 简介 Kapacitor是InfluxData公司开发的一个实时流数据处理引擎.它可以实时地通过TICK脚本处理InfluxDB中的流数据以及批处理数据. K ...