原文作者:尤金妮娅·库兹缅科 22年3月31日 · 数据库专区 · 分析
原文地址:https://dzone.com/articles/mongodb-user-cases-pros-and-cons
MongoDB 是一种基于文档的数据库管理系统,通常用于大容量数据存储。它是一种简单的数据管理工具,是为替代 MySQL 结构而开发的,因为数据的增长需要新的管理工具。MySQL 由于缺乏重新格式化数据结构的灵活性而变得过时。问题在于基于表的设计,因为它使多变量搜索查询集变得有限。企业依靠结构化和非结构化数据的组合来进行业务决策,从而使 MongoDB 快速增长。
MySQL 是基于表的系统或开源关系数据库,而 MongoDB 也称为基于对象的系统。基于表的设计是用于搜索的数据查询结构,其中所有数据都与另一个数据点或集合相关。相反,MongoDB 中的数据是非关系型的。MongoDB 不使用表和行,而是创建集合和文档。文档由键值对组成——系统的核心单元。与行不同,文档可以存储结构复杂的信息。文档集和函数集统一在集合中,相当于关系数据库表。MongoDB 允许您表示存储数组、层次关系和其他更复杂的结构。
MongoDB 是一个 NoSQL 系统
MongoDB 是一个非关系系统,被称为 NoSQL 数据库。搜索的主要数据单位是文档,这使得 MongoDB 成为一个基于对象的系统。它采用二进制JASON语言,对结构复杂的数据有效。MongoDB 存储数据的方式与 JSON 类似,尽管 JSON 并未正式使用。对于存储,它使用一种称为 BSON 的格式——类似 JSON 的文档二进制编码成更小的文件。它使数据管理过程更快。MongoDB 也使用 MongoDB 查询语言,被认为具有更灵活的结构。许多企业更喜欢 MongoDB 数据库系统的结构。借助动态“模式”设计对信息进行排序,这使得系统灵活快速。虽然结构化数据是根据定义的模式组织的,但非结构化数据不遵循任何预定义的模型。
结构化数据很容易适合有组织的字段或列。它们可能如下:姓名、地址、帐号、订单金额、价格。由于 Steam 的定义非常明确,您可以轻松地查询和分析数据。非结构化数据更难以结构化和存储。它可能包括消息、视频、照片、网页和音频文件。如果您使用传统工具查询视频,您永远无法确定您会看到什么,因为没有任何定义。由于人们可以自由地表达自己,没有标准化的规则,因此社交媒体订阅没有明确的结构。这就是普通查询工具不起作用的地方。
根据 IDC的说法,90% 的超大型数据集是非结构化的,这就是为什么 Mango DB 是一个值得在您的大数据工作中实施的工具。在我之前的文章中,我解释了MongoDB、MySQL 和 PostgreSQL之间的区别。
什么时候最适合使用 MongoDB
根据麦肯锡全球研究所的 研究公司,由数据驱动的获得客户的可能性是 23 倍,留住客户的可能性是 6 倍,因此获利的可能性是 19 倍。此外,企业自身产生的数据量以每年55-65%的速度增长,其中大部分是非结构化的。因此,找到一种用于管理数据的现代工具对您的业务至关重要,不仅在现代化方面,而且在未来成功方面。有一些例子说明使用 Mongo DB 数据库至关重要。 
寻求升级大数据的传统企业
传统现代化是将创新应用到您的业务以及它如何处理大数据的一个步骤。如果您要合并大量数据源,文档模型具有以其他数据库无法提供的方式创建单一统一视图的灵活性和强大功能。现代化将帮助您轻松扩展应用程序,以 3-5 倍的速度构建业务功能,扩展到数百万用户,并将成本削减不少于 70%。
现代化过程需要人、组织良好的过程和技术。这一切,除了开发者团队,都可以由 MongoDB 提供。它为您提供咨询咨询、程序治理和应用程序生命周期专业知识。此外,它为您提供清单并描述应用程序组合,定义项目范围和执行,以及设计、实施、验证和优化的指南。数据文档模型加快了开发效率,分布式系统设计有助于扩展永远在线的应用程序以及您和技术本身。
内容管理系统 (CMS)
内容管理系统实时处理大规模非结构化数据并将内容提供给各种应用程序。这需要实施能够管理非结构化数据的最新数据库技术和解决方案。MongoDB 提供存储,适用于单个数据库中的任何类型的内容。
将它用于您的 CMS 有几个原因:
灵活的数据模型:您可以合并来自任何来源的任何类型的数据,还可以在不停机的情况下对数据库进行频繁更新;
可扩展性: MongoDB 具有横向扩展架构,随着受众的增长,可以轻松利用其他功能;
降低成本:您无需在硬件上花费预算来扩展系统,Mongo DB 易于使用,因此它还可以保持团队的性能。
高查询站点和应用程序,例如分析应用程序
Mongo DB 是构建高查询站点和应用程序的首屈一指的工具。首先,它适用于管理任何类型的数据。无论您需要组织什么类型的数据,无论是数字、对象还是地理空间数据,数据库系统都可以提供数据操作,而无需从客户端产生额外的过程。传统数据库不适合这一点,因为它们进入旨在解决小数据量和一致的数据结构,以及较少的更新。Mongo DB 还可以提供实时更新,这对于任何类型的分析应用程序和网站来说都是一个有用的工具,处理财务分析、社交媒体、游戏。
为什么在上述情况下使用 MongoDB 更好?
Mongo DB 有几个优点,可以用非结构化数据补充任何类型的操作。
无模式
关系数据库使用模式来描述任何功能元素,包括表、行、视图、索引和关系。MongoDB 在没有模式的情况下运行。这意味着它可以接受、存储、检索和查询任何数据类型,并且几乎不会对您的原始数据进行任何更改。
易于横向扩展
您可以将工作分配给不同的机器,因为集合是自包含的,无需跨节点将它们放在一起。横向扩展可以通过共享和副本集来实现。共享意味着整体数据的一个子集被传播到某个节点,而复制意味着数据集被复制。因此,您可以创建一个应用程序来处理随着受众增长而出现的流量高峰。
一致性水平是可变的
在 Mongo DB 中,您可以根据数据的值调节一致性级别。读写关注点的不同组合提供了不同的因果一致性保证。如果您寻求更快的性能,请减少对 Mongo DB 的插入。在返回之前将插入复制到多个节点会使一致性更高,但会降低性能。
成本
Mongo DB 可以免费使用,并且可以在 Linux 上运行。可能会为并非总是需要的特定工具提供费用。
使用 MongoDB 的公司
在 MongoDB Forbes 的帮助下,仅在 2 个月内就构建了一个 CMS。开发一个新的移动网站花了一个月的时间。在数据库的帮助下,它可以更深入地了解通过社交媒体共享的文章,从而能够实时利用内容的病毒性方面。
eBay 在 MongoDB 的帮助下为其 Web 资产构建了媒体元数据存储。Pearsons 还使用该技术开发了基于云的学习管理系统。Carfax 创建了 MongoDB CMS,对他们的传统进行了现代化改造,并发现他们因此可以为 10 倍以上的客户提供服务。




