41

The SQL vs NoSQL Difference: MySQL vsMongoDB

 5 years ago
source link: http://www.apexyun.com/the-sql-vs-nosql-difference-mysql-vs-mongodb/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在选择数据库时,最大的决策之一是选择关系(SQL)或非关系(NoSQL)数据结构。虽然两者都是可行的选择,但在做出决定时必须牢记两者之间存在某些关键差异。

在这里,我们分解了最重要的区别,并讨论了关系与非关系争论中的两个关键角色:MySQL和MongoDB。

你的Quora问题:MongoDB死了吗?

大局差异

语言

考虑 一个小镇-我们称之为A镇,每个人都说同一种语言。所有的业务都是围绕它建立的,每种形式的沟通都使用它 - 简而言之,这是居民理解周围世界并与之互动的唯一方式。在一个地方改变这种语言会让每个人感到困惑和破坏。

现在,想想另一个城镇B镇,每个家庭都可以说不同的语言。每个人都以不同的方式与世界互动,并且没有“普遍”理解或设定组织。如果一个家庭不同,它根本不会影响其他任何人。

这有助于说明SQL关系数据库和NoSQL非关系数据库之间的根本区别之一,这种区别具有重大意义。我们来解释一下:

SQL数据库 使用结构化查询语言(SQL)来定义和操作数据。一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复杂的查询。另一方面,它可能是限制性的。SQL要求你在使用之前使用预定义模式来确定数据的结构。此外,你的所有数据都必须遵循相同的结构。这可能需要大量的前期准备,而且,与A镇一样,这可能意味着结构的变化既困难又会对整个系统造成破坏。

另一方面, NoSQL数据库 具有非结构化数据的动态模式,数据以多种方式存储:它可以是面向列的,面向文档的,基于图的,也可以组织为KeyValue存储。这种灵活性意味着:

· 你无需先定义其结构即可创建文档

· 每个文档都可以有自己独特的结构

· 语法可能因数据库而异,并且

· 你可以随时添加字段。

可扩展性

在大多数情况下,SQL数据库是可垂直扩展的,这意味着你可以通过增加CPU,RAM或SSD等功能来增加单个服务器上的负载。另一方面,NoSQL数据库是水平可伸缩的。这意味着你可以通过分片或在NoSQL数据库中添加更多服务器来处理更多流量。这就像在同一建筑物中增加更多楼层,而不是在附近增加更多建筑物。后者最终可以变得更大,更强大,使NoSQL数据库成为大型或不断变化的数据集的首选。

结构

SQL数据库是基于表的,而NoSQL数据库是基于文档的,键值对,图数据库或宽列存储。这使得关系SQL数据库成为对于需要多行事务的应用程序(例如会计系统)或为关系结构构建的遗留系统的更好选择。

SQL数据库的一些示例包括MySQL,Oracle,PostgreSQL和Microsoft SQL Server。NoSQL数据库示例包括MongoDB,BigTable,Redis,RavenDB Cassandra,HBase,Neo4j和CouchDB。

SQL与NoSQL:MySQL与MongoDB

现在我们已经确定了SQL和NoSQL数据库之间的关键结构差异,让我们深入研究两者之间的关键功能差异,特别是以MySQL和MongoDB为例。

MySQL:SQL关系数据库

以下是MySQL的一些优点和优点:

· 成熟 :MySQL是一个非常成熟的数据库,意味着有一个庞大的社区,广泛的测试和相当多的稳定性。

· 兼容性: MySQL适用于所有主要平台,包括Linux,Windows,Mac,BSD和Solaris。它还具有Node.js,Ruby,C#,C ++,Java,Perl,Python和PHP等语言的连接器,这意味着它不仅限于SQL查询语言。

· 成本: 数据库是开源的,免费的。

· 可复制: MySQL数据库可以跨多个节点进行复制,这意味着可以减少工作负载,并且可以提高应用程序的可伸缩性和可用性。

· 分片 虽然在大多数SQL数据库上无法进行分片,但可以在MySQL服务器上完成分片。这既符合成本效益又有利于企业发展。

MongoDB:NoSQL非关系数据库

以下是MongoDB的一些优点和优势:

· 动态模式: 如上所述,这使你可以灵活地更改数据模式,而无需修改任何现有数据。

· 可扩展性: MongoDB可横向扩展,有助于减轻工作量并轻松扩展业务。

· 易管理: 不需要数据库管理员。由于它以这种方式对用户非常友好,因此开发人员和管理员都可以使用它。

· 速度: 它对于简单查询来说效果很好。

· 灵活性: 你可以在MongoDB上添加新列或字段,而不会影响现有行或应用程序性能。

那么哪个数据库适合你的业务?

对于任何将从预定义结构和集合模式中受益的企业而言,MySQL是一个强有力的选择。例如,需要多行事务的应用程序(如会计系统或监视库存的系统)或在遗留系统上运行的应用程序将在MySQL结构中蓬勃发展。

另一方面,对于快速增长的企业或没有明确模式定义的数据库,MongoDB是一个不错的选择。更具体地说,如果你无法为数据库定义架构,如果你发现自己对数据架构进行了规范化,或者你的架构仍在不断变化 - 通常情况下,移动应用程序,实时分析,内容管理系统等等, MongoDB对你来说是一个很好的选择。

点击英文原文链接

更多文章欢迎访问: http://www.apexyun.com

公众号:银河系1号

联系邮箱:[email protected]

(未经同意,请勿转载)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK