内容简介:过去几年,使用NoSQL数据库的网站和应用数量激增。 MongoDB无处不在。 现代网络如何偏离传统的基于SQL的数据库确实令人着迷。 MongoDB和其他NoSQL数据库在存储和检索数据方面有一种新方法。 那么让我们来看看MongoDB与MySQL不同的一些关键因素。使用像MySQL这样的传统SQL数据库,我们需要一个固定的数据结构。 我们希望知道将记录哪些不同类型的数据。 我们必须事先创建数据库,必需的表,列,甚至为每列指定数据类型。 MongoDB不是这种情况。 使用MongoDB,开发人员可以稍微
过去几年,使用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之间的主要区别。如果你仍然有疑问,请在评论框里畅所欲言吧。
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-10/155033.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 选择/取消选择所有按钮以选择闪亮变量
- 个人如何成长?兴趣驱动,选择与被选择的思考
- v-region 2.0.0 发布,行政区划选择器(4 级联动城市选择)
- v-region 2.0.0 发布,行政区划选择器(4 级联动城市选择)
- 选择排序——Python实现
- PHP实现选择排序
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Text Processing in Python
David Mertz / Addison-Wesley Professional / 2003-6-12 / USD 54.99
Text Processing in Python describes techniques for manipulation of text using the Python programming language. At the broadest level, text processing is simply taking textual information and doing som......一起来看看 《Text Processing in Python》 这本书的介绍吧!