首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对于一台机器上的结构化数据,NoSQL over RDBMS是否有任何真正的优势?

对于一台机器上的结构化数据,NoSQL over RDBMS是否有任何真正的优势?
EN

Stack Overflow用户
提问于 2019-04-24 07:02:51
回答 2查看 0关注 0票数 0

所以我一直在努力弄清楚NoSQL是否真的在自动分片和处理UNSTRUCTURED数据之外带来了那么多的价值。

假设我可以将STRUCTURED数据放在一台机器上,或者为SQL提供有效的“自动分片”功能,那么NoSQL选项有哪些优势呢?我已经确定了以下内容:

  1. 基于文档(MongoDB,Couchbase等) - 除了“自动分片”功能之外,我很难理解其中的好处。链接对象与SQL连接非常相似,而嵌入对象显着膨胀文档大小并导致复制的挑战(注释可能同时属于帖子和用户,因此数据将是多余的)。此外,ACID和交易的损失是一个很大的缺点。
  2. 基于键值(Redis,Memcached等) - 提供不同的用例,非常适合缓存但不是复杂的查询
  3. Columnar(Cassandra,HBase等) - 这里的最大优势似乎是数据如何存储在磁盘上,并且主要用于聚合而不是一般用途
  4. 图形(Neo4j,OrientDB等) - 最有趣的是,边缘和节点的使用产生了一个有趣的价值主张,但主要用于高度复杂的关系数据而不是一般用途。

我可以看到Key-value,Columnar和Graph DB对于特定用例(缓存,社交网络关系映射,聚合)的优势,但是看不出任何理由使用像MongoDB这样的结构数据之外的'自动 - 分割'能力。

如果SQL具有类似的“自动分片”能力,那么SQL对于结构化数据来说是不是很明智吗?在我看来会是这样,但我希望社区的意见......

注意:这与典型的CRUD应用程序有关,如社交网络,电子商务网站,CMS等。

EN

回答 2

Stack Overflow用户

发布于 2019-04-24 15:08:45

无架构存储(或无架构)。能够修改存储(基本上将新字段添加到记录),而无需修改存储“声明”模式。RDBMS需要显式声明所述“字段”,并且在保存新的“字段”之前需要对模式进行显式修改。无架构存储引擎允许快速更改应用程序,只需修改应用程序代码以保存额外字段,或重命名字段,或删除字段并完成。

传统的RDBMS民众认为无模式是一个缺点,因为他们认为从长远来看,需要查询存储和处理异构记录(一些有一些字段,一些有其他字段)使得难以处理。但对于一家初创企业来说,无模式是绝对诱人的,因为快速迭代和上市时间是最重要的(通常是正确的)。

票数 0
EN

Stack Overflow用户

发布于 2019-04-24 16:14:59

您要求我们假设数据可以放在一台机器上,或者您的数据库具有有效的自动分片功能。

假设您的SQL数据具有自动分片功能,这意味着您正在谈论运行群集。无论何时运行一组机器,都必须担心容错。

例如,假设您使用的是按应用程序功能分片数据的最简单方法,并将所有用户帐户数据存储在服务器A和服务器B上的产品目录中。

如果服务器A出现故障并且您的用户都无法登录,您的企业是否可以接受?

如果服务器B出现问题并且没有人可以买东西,您的企业是否可以接受?

如果没有,您需要担心设置数据复制和高可用性故障转移。SQL数据库可行但不愉快或不容易。其他类型的分片策略(密钥,查找服务等)具有相同的挑战。

许多NoSQL数据库将自动处理复制和故障转移。有些人会开箱即用,配置很少。从操作的角度来看,这是一个巨大的好处。

完全披露:我是FoundationDB的工程师,这是一个NoSQL数据库,可以用很少的配置自动处理分片,复制和故障转移。它还有一个SQL层,因此您不必放弃结构化数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档