- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
nosql 数据库是指像 mongodb 或 dynamodb 这样的数据库我一直在努力寻找为什么 NoSql 数据库在水平扩展方面通常比关系数据库更好,以及如何在它们之间进行选择
我看过很多视频和帖子,告诉我们“SQL vs NoSQL”。他们中的大多数人最终谈论的是“规范化与非规范化”。
这里有一些我仍然感到困惑的问题。
1.许多人说关系型数据库必须遵循 ACID,因此它们不擅长水平扩展。但是 ACID 是关于事务的,我们总是可以选择不使用任何事务,对吧?我知道这样做的人不多,但是如果我们对表进行足够的非规范化,它会像我们几乎不使用任何事务的 NoSQL 数据库吗?许多 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 的东西
最佳答案
类似https://neo4j.com/blog/acid-vs-base-consistency-models-explained/ 的博客以这种方式解释 BASE:
Basic Availability
- The database appears to work most of the time.
Soft-state
- Stores don’t have to be write-consistent, nor do different replicas have to be mutually consistent all the time.
Eventual consistency
- Stores exhibit consistency at some later point (e.g., lazily at read time).
这种模棱两可的说法听起来不太可靠,是吗?他们权衡可用性和一致性以获得性能和可扩展性。
如果您运行的服务可以容忍不匹配的数据或过时的数据,或者偶尔丢失少量数据也可以。如果这些问题很少发生,但您几乎一直都能获得出色的性能,那将非常有吸引力。更重要的是,它的演示效果很好。
但如果你必须运行一个对数据完整性有严格要求的服务,那就不好了。如果即使丢失一条数据记录也会给审计员带来麻烦,或者如果您不能可靠地读取您刚刚提交的数据,因为该提交需要时间传播到集群的所有节点,这可能会破坏交易.
因此选择哪种数据存储取决于您的应用程序的要求。只有您可以判断 BASE 数据存储的宽松可用性和一致性是否足以满足您应用的需求。
关于mysql - 为什么 NoSql 数据库的扩展性比关系数据库好?我应该如何选择它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68368190/
下午好 我创建了一个将 Verilog 语言注册为有效内容类型的 visual studio 包。 我的语法高亮、大纲、智能缩进等都可以正常工作。 但是,我希望能够让 Visual Studio 通过
我处于工具窗口的焦点中。通过在 TreeView 节点上双击,光标必须移动到打开的源代码文档中的特定行。我通过调用 Edit.GoTo Line 命令解决了这个问题,如下所示: var command
我需要为自定义项目模板实现某种可扩展性。 打开 C# 代码文件,如果...: ...当前项目有一些特定的类型 ID。 ...代码文件是一个类,继承了一些具体的基类。 ...用户按下了 F5。 ...我
我已经阅读了大量关于 VS2010 中可扩展性故事的改进(即基于 MEF 等)的大量改进,但还没有弄脏我的手。我最近遇到了一个让我想深入研究的真实场景,但我很惊讶没有找到很多关于启动和运行我想要构建的
我的一位客户要求我们开发一个“VBA 宏”。然而,在 2010 年代,仍然使用这种过时的语言对我来说似乎很奇怪,我正在考虑尝试说服客户使用 VSTO dev。然而,由于我对这两个世界都是新手,我需要帮
我正在将 Git 集成添加到我的 Visual Studio 扩展 Diff All Files ,它允许快速比较(即比较)Team Explorer 窗口中的所有文件与以前的版本。我让它与 Git
我是一名优秀的程序员,十分优秀!