在选择数据库时,最大的决策之一是选择关系(SQL)或非关系(NoSQL)数据结构。虽然两者都是可行的选择,但在做出决定时必须牢记两者之间存在某些关键差异。
在这里,我们分解了最重要的区别,并讨论了关系与非关系争论中的两个关键角色:MySQL和MongoDB。
你的Quora问题:MongoDB死了吗?
大局差异
语言
考虑一个小镇-我们称之为A镇,每个人都说同一种语言。所有的业务都是围绕它建立的,每种形式的沟通都使用它 - 简而言之,这是居民理解周围世界并与之互动的唯一方式。在一个地方改变这种语言会让每个人感到困惑和破坏。
现在,想想另一个城镇B镇,每个家庭都可以说不同的语言。每个人都以不同的方式与世界互动,并且没有“普遍”理解或设定组织。如果一个家庭不同,它根本不会影响其他任何人。
这有助于说明SQL关系数据库和NoSQL非关系数据库之间的根本区别之一,这种区别具有重大意义。我们来解释一下:
SQL数据库使用结构化查询语言(SQL)来定义和操作数据。一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复杂的查询。另一方面,它可能是限制性的。SQL要求你在使用之前使用预定义模式来确定数据的结构。此外,你的所有数据都必须遵循相同的结构。这可能需要大量的前期准备,而且,与A镇一样,这可能意味着结构的变化既困难又会对整个系统造成破坏。
另一方面,NoSQL数据库具有非结构化数据的动态模式,数据以多种方式存储&#