MongoDB入门一:基本概念

一.数据库的分类

目前的数据库主要分为关系型数据库和非关系型数据。

关系型数据库

  • 通过SQL结构化查询和存储语句,最常见的就是Oracle和MySQL

  • 保持数据一致性理论,遵循ACID原理

非关系型数据库

- Not Only SQL,是对不同于传统的关系型数据库的数据库管理系统的统称,典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库)

- 用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展

- CAP定理 ,高性能,高可用性和可伸缩性

二.MongoDB的概念

MongoDB是一个开源文档数据库(Document Database),其具有高性能、高可用性和自动缩放的特性。

1.主要特性

高性能

MongoDB具有高性能的数据存储功能。尤其是下面两方面:

扫描二维码关注公众号,回复: 4660514 查看本文章

- 对嵌入式数据模型的支持减少了数据库系统的I/O交互

- 文档和数据的键可以建立索引,提高查询效率

丰富的查询语言

MongoDB提供丰富的查询语言,除了支持增删改查(CRUD)操作,还支持以下操作:

- 数据聚合

- 文本搜索和地理空间搜素

高可用性

MongoDB的复制工具,也称为副本集,有如下特点:

- 自动的故障转移机制

- 数据备份

水平扩充

MongoDB的核心功能之一就是水平可扩展:

- 通过分片将数据分布在集群机器中

- 从3.4开始,MongoDB支持基于碎片键创建数据区域。在一个平衡的集群中,MongoDB只将区域覆盖的读写定向到区域内的碎片。有关更多信息,请参阅区域手册页

支持多存储引擎

- WiredTiger存储引擎(包括对静止加密的支持)

- 内存存储引擎

- MMAPv1存储引擎(MongoDB 4.0弃用)

2.文档、集合和数据库的概念

文档:

文档是基本单位,类似于关系数据库中的行,比行稍微复杂。多个键值对有序的放在一起就构成了文档。格式如下:

{“name”: “mongo”, “value”: “hello”}

key: 必须为字符串类型。

value:可以包含如下类型。

● 基本类型,例如,string,int,float,timestamp,binary 等类型。

● 一个document。

● 数组类型。

使用文档的优势:

- 在许多编程语言中,文档对应其本地的数据类型

- 嵌入式的文档和数组减少了数据连接的代价

- 动态模式的支持使其灵活多变

集合:

集合就是一组文档,类似于关系数据库中的表,但是可以存储不同结构的文档。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。

数据库:

多个文档构成集合,多个集合构成数据库。一个Mongo实例可以承载多个数据库,数据库之间可以看做相互独立,它们有独立的权限控制。在磁盘上,不同的数据库存放在不同的文件中。

参考链接:

https://docs.mongodb.com/manual/introduction/

https://blog.csdn.net/xin_ge_cheng_xu/article/details/79663549

猜你喜欢

转载自blog.csdn.net/sunjian1122/article/details/84070201