写点什么

一、MongoDB 简介

用户头像
Kylin
关注
发布于: 2021 年 02 月 19 日
一、MongoDB简介

1.1 易于使用

MongoDB 是一个面向文档的数据库。没有关系模型导致具有更好的扩展性。面向文档的方法能够仅使用一条记录来表现复杂的层次关系。


不预定义模式:文档的键和值没有固定的类型和大小。更容易添加和删除字段。开发进程得以加快,因为开发者能够进行快速迭代,并且能尝试大量的数据模型。


1.2 易于扩展

由于需要存储的数据量不断增大,开发者面临一个选择难题:扩展数据库是选择纵向扩展还是横向扩展呢?


MongoDB 是横向扩展设计。能自动处理跨集群的数据和负载,自动重新分配文档,以及将用户请求路由到正确的机器上。如果一个集群需要更大的容量,只需要向集群添加新服务器,MongoDB 就会自动将现有数据向新服务器传送。

纵向扩展就是使用计算能力更强的机器;

横向扩展就是通过分区将数据分散到更多机器上。

通常,纵向扩展最省力,但是大型机器一般都非常昂贵,并且,当数据量达到机器的物理极限时,就不能再用金钱购买到的了。

横向扩展便宜且易于扩展,但是管理 1000 台机器比管理一台机器显然要困难得多。

1.3 丰富的功能

MongoDB 作为一款通用型数据库,除了能够创建、读取、更新和删除数据之外,还提供一系列不断扩展的独特功能。


  • 索引

  • 聚合

  • 特殊的集合类型

MongoDB支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话。也支持固定大小的集合,用于保存近期数据,如日志。
复制代码
  • 文件存储

MongoDB支持一种非常易用的协议,用于存储大文件和文件元数据。
复制代码


MongoDB 并不具备一些在关系型数据库中很普遍的功能,如连接和复杂的多行事务,省略这些功能是出于架构上的考虑(为了得到更好的扩展性),因为在分布式系统中这两个功能难以高效的实现。

1.4 卓越的性能

MongoDB 能对文档进行动态填充,也能预分配数据文件以利用额外的空间来换取稳定的性能。MongoDB 把尽可能多的内存用作缓存,试图为每次查询自动选择正确的索引。只要在有可能的情况下,数据库服务器就会将处理和逻辑交给客户端(通过驱动程序或用户的应用程序代码来实现)。这种精简方式的设计是 MongoDB 能够实现如此高性能的原因之一。


用户头像

Kylin

关注

现实的理想主义者 2019.10.08 加入

【坐标】:魔都 【品种】:程序媛 【标签】:技术宅、大吃货 【追求】:改变世界、改变自己 【信条】:每次前进一小步

评论 (1 条评论)

发布
用户头像
学习
2021 年 02 月 28 日 11:12
回复
没有更多了
一、MongoDB简介