目录

一、Mongodb简单介绍:

二、Mongodb与关系型数据库对照关系:

1、存储方式对比:

2、对应关系说明:

3、结构对比详解:

三、Mongodb使用场景:

1、mongodb使用场景:

2、如何决定是否使用mongodb存储:

四、Mongodb慎用场景:

五、Mongodb主要功能:


 

一、Mongodb简单介绍:

MongoDB 是一个基于分布式文件存储的数据库。在高负载的情况下,添加更多的节点,可以保证服务器性能。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

mongodb 存储过程调用 mongodb存储方式_字段

二、Mongodb与关系型数据库对照关系:

1、存储方式对比:

在传统的关系型数据库中,存储方式是以表的形式存放,而在MongoDB中,以文档的形式存在。

mongodb 存储过程调用 mongodb存储方式_mongodb_02

2、对应关系说明:

mongodb 存储过程调用 mongodb存储方式_关系数据库_03

3、结构对比详解:

SQL Terms/Concepts

MongoDB Terms/Concepts

database

database

table

collection

row

document or BSON document

column

field

index

index

table joins

embedded documents and linking

primary key

Specify any unique column or

column combination as

primary key.

primary key

In MongoDB, the primary key is

automatically set to the _id field.

aggregation (e.g. group by)

aggregation pipeline

See the SQL to Aggregation Mapping

Chart.

三、Mongodb使用场景:

1、mongodb使用场景:

网站数据、缓存等大尺寸、低价值的数据。在高伸缩性的场景,用于对象及JSON数据的存储。

mongodb 存储过程调用 mongodb存储方式_mongodb_04

2、如何决定是否使用mongodb存储:

应用特征

Yes/No?

我的数据量是有亿万级或者需要不断扩容

 

需要2000-3000以上的读写每秒

 

新应用,需求会变,数据模型无法确定

 

我需要整合多个外部数据源

 

我的系统需要99.999%高可用

 

我的系统需要大量的地理位置查询

 

我的系统需要提供最小的latency

 

我要管理的主要数据对象<10

 

在上面的表格中进行选择,但有1个yes的时候:可以考虑MongoDB;当有2个以上yes的时候:不会后悔的选择!

四、Mongodb慎用场景:

慎用场景

原因

PB 数据持久存储大数据分析数据湖

Hadoop、Spark提供更多分析运算功能和工具,并行计算能力更强

MongoDB + Hadoop/Spark

搜索场景:文档有几十个字段,需要按照任意字段搜索并排序限制等

不建索引查询太慢,索引太多影响写入及更新操作,elasticsearch拥有很强的全文搜索能力,并且可集群、高可用。

ERP、CRM或者类似复杂应用,几十上百个对象互相关联

关联支持较弱,事务较弱

需要参与远程事务,或者需要跨表,跨文档原子性更新的

MongoDB  事务支持仅限于本机的单文档事务

100% 写可用:任何时间写入不能停

MongoDB换主节点时候会有短暂的不可写设计所限

五、Mongodb主要功能:

1、每个数据库都包含集合,而集合又包含文档。每个文档可以有不同的字段数。每个文档的大小和内容可以彼此不同。

2、文档结构更符合开发人员如何用各自的编程语言构造类和对象。开发人员通常会说,他们的类不是行和列,而是有一个带有键值对的清晰结构。

3、正如NoSQL数据库简介中所看到的,行(或MongoDB中调用的文档)不需要预先定义模式。相反,可以动态创建字段。

4、MongoDB中可用的数据模型允许您更容易地表示层次关系、存储数组和其他更复杂的结构。

5、可扩展性—MongoDB环境非常容易扩展。世界各地的公司都定义了集群,其中一些公司运行100多个节点,数据库中有大约数百万个文档。