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格式,因此能够存储比 ...
随机推荐
- Axure 表单元件
文本框:一条 文本域:整个区域多行 单选:指定单元按钮组
- SpringBoot 自定义初始化任务 Runner
在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等.可以通过实现Runner接口完成以上工作. 两者只是参数上的区别 方式一 实现 CommandLineRunner 接口 ...
- MyBatis:快速入门
MyBatis 简介 MyBatis 是一个开源.轻量级的数据持久化框架,是 JDBC 和 Hibernate 的替代方案.MyBatis 内部封装了 JDBC,简化了加载驱动.创建连接.创建 sta ...
- h5响应式方案设计
- chage详解:liunx账户密码过期时处理
公司安装elasticSearcher7.10.2版本时提示账户密码过期,可以做以下的处理方式: 一.查看账户的使用情况 chage -l baikang [root@localhost ~]# ch ...
- 应用程序使用统计信息 – .NET CORE(C#) WPF界面设计
应用程序使用统计信息 - .NET CORE(C#) WPF界面设计 首发文章地址:https://dotnet9.com/10546.html 关键功能点 抽屉式菜单 圆形进度条 Demo演示: 1 ...
- 【css】 text-align 居中导航
原理 :利用 inline-block 将 导航 作为 文本 , 被外层具有 text-align 属性的导航盒子包含 .从而实现居中效果 1. html 结构 <header> < ...
- [转帖]SecurityProtocolType 枚举
https://learn.microsoft.com/zh-cn/dotnet/api/system.net.securityprotocoltype?view=net-8.0 命名空间: Syst ...
- [转帖]如何查看Docker容器环境变量,如何向容器传递环境变量
https://www.cnblogs.com/larrydpk/p/13437535.html 1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 了解Docker容器的运行 ...
- [转帖]解决Java/MySQL性能问题的思路
https://plantegg.github.io/2023/08/28/%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98%E6%80%9D%E8%B7%AF/ 10年前写的 ...