【发布时间】:2021-09-22 20:22:57
【问题描述】:
我所说的 nosql 数据库是指 mongodb 或 dynamodb 我一直在试图找出为什么 NoSql 数据库通常在水平扩展方面比关系数据库更好,以及如何在它们之间进行选择
我查看了许多告诉我们“SQL 与 NoSQL”的视频和帖子。他们中的大多数最终都在谈论“规范化与非规范化”。
以下是一些我仍然感到困惑的问题。
1。 许多人说关系数据库必须遵循 ACID,因此它们不擅长水平扩展。但是 ACID 是关于事务的,我们总是可以选择不使用任何事务,对吧?我知道没有多少人这样做,但如果我们对表进行足够的非规范化,会不会像 NoSQL dbs 那样我们几乎不使用任何事务?许多 NoSql 数据库现在也有事务。
2。 我知道非规范化可能有利于水平缩放,因为如果数据是 分布在许多节点(机器)上,很难进行表连接(或事务)。 但是像事务一样,我们可以选择不使用任何表连接。
我唯一能想到的是 NoSQL 是无模式的,添加新字段(列)比 RDB 更容易。
我想问的是
为什么“非规范化 NoSQL 数据库”比“非规范化关系数据库”更好?
为什么“规范化 NoSQL 数据库”比“规范化关系数据库”差?
阻止关系数据库非规范化的真正原因是什么?
我读过这篇文章
https://softwareengineering.stackexchange.com/questions/194340/why-are-nosql-databases-more-scalable-than-sql
它说
""SQL API 缺少一种机制来描述放宽 ACID 要求的查询。这就是为什么 BASE 数据库都是 NoSQL。""
谁能给我一个这样的例子吗?
抱歉没有具体说明
我所说的 NoSQL 数据库是指 mongodb 之类的东西
【问题讨论】:
-
在大多数关系数据库中,事务不是可选的。如果您不自己指定它们,它们会为您创建。
标签: mysql sql database mongodb nosql