共计 1586 个字符,预计需要花费 4 分钟才能阅读完成。
过去几年,使用 NoSQL 数据库的网站和应用数量激增。MongoDB 无处不在。现代网络如何偏离传统的基于 SQL 的数据库确实令人着迷。MongoDB 和其他 NoSQL 数据库在存储和检索数据方面有一种新方法。那么让我们来看看 MongoDB 与 MySQL 不同的一些关键因素。
数据建模
使用像 MySQL 这样的传统 SQL 数据库,我们需要一个固定的数据结构。我们希望知道将记录哪些不同类型的数据。我们必须事先创建数据库,必需的表,列,甚至为每列指定数据类型。MongoDB 不是这种情况。使用 MongoDB,开发人员可以稍微悠闲一点。忘记表和数据类型,甚至不需要创建数据库。MongoDB 会自动为您完成大部分初始繁重工作。
MongoDB 致力于集合的思想。这些集合类似于表,但没有任何固定数量的列。因此,集合中的每个文档(文档是行 / 记录的 MySQL 等价物)可以具有不同的结构。它们可能具有相同数量的字段,也可能不具有相同数量的字段(字段是 MySQL 的等效列)。因此可以说 MySQL 具有固定模式,而 MongoDB 具有灵活的模式。
搜索数据
在 MySQL 中搜索数据库中的数据可能是一项非常简单的任务。我们支持诸如可以帮助组合来自多个表的数据的连接之类的东西。但这再次要求您非常了解您的数据模型。像外键这样的概念允许您在不同数据集之间创建关系。这有助于保持数据完整性。
由于其灵活的架构,MongoDB 在搜索数据方面有着截然不同的方法。搜索数据非常有限,因为 Mongo 中没有联接。由于允许嵌套,因此您需要在一个文档中放置所需的任何数据。这是真正困扰在 mongo 上工作的新开发人员的事情之一。总的来说,我会说 SQL 在搜索数据方面非常丰富而且 MongoDB 非常有限。
约束和数据完整性
由于您必须使用 SQL 预定义数据模型,因此无需担心完整性。数据库不接受任何不符合标准的数据类型。像外键,主键和唯一索引这样的约束会让开发人员感到很麻烦。
另一方面,尽管 MongoDB 落后了。它确实提供了几种类型的基于完整性的索引,包括唯一索引,但是数据类型没有约束。它完全被理解,因为这些领域本身并没有固定。因此,非常常见的是,ORM(对象关系映射器)经常与 MongoDB 一起使用。它们用于对服务器端代码执行完整性检查。总而言之,SQL 是非常严格且丰富的数据完整性,而 MongoDB 则不然。
扩展
每个成功的应用程序都需要在某个时候扩展。当用户数量增长时,需要多个服务器。这是能够扩展的因素。传统上,SQL 数据库是为垂直扩展而构建的,即通过增加同一台机器上的硬件进行扩展。如果该服务器由于某种原因崩溃,这将导致麻烦。
另一方面,MongoDB 是为了水平扩展而构建的。您可以设置多个节点,这些节点将自动复制,没有单点故障。虽然 MySQL 已经看到了 MySQL Cluster 的巨大改进,但它仍然无法与 MongoDB 相媲美。在扩展方面,MongoDB 的性能远远优于 MySQL。
结论
MongoDB 和 MySQL 有两个完全不同的数据库系统。在数据库方面,MySQL 一直是并且仍然是许多人的默认选择。但是,我们看到变化和,更多的人们选择 MongoDB。
MongoDB 比 MySQL 更能满足现代应用程序的需求但 MySQL 在处理关系数据方面具有更好的优势。在一天结束时,这只是你想要做的事情。这两个选项都非常可靠,并且被互联网上的一些大公司使用。我希望我已经明确了 MySQL 和 MongoDB 之间的主要区别。如果您仍有疑问,请将其放在评论部分,我会在那里为您服务。
MongoDB 比 MySQL 更好地满足了现代应用程序的需求,但 MySQL 在处理关系数据方面有更好的优势。说到底,这只是你想做什么的问题。这两种选择都相当可靠,一些互联网上最大的公司也在使用它们。我希望我已经明确了 MySQL 和 MongoDB 之间的主要区别。如果你仍然有疑问,请在评论框里畅所欲言吧。
: