考虑一个键值对,其中的键和值都是字符串。例如..从长URL映射到短URL的键值对,反之亦然。长URL ->短URL。no-SQL的一个主要优点是不需要表连接,因为整个数据(分散在关系数据库中的许多表中)存储为一个文档(Couchbase)或一个值(Redis)。在本例中,我们的值是一个简单的字符串,而不是分布在多个表中的某个对象。
因此,这里不涉及连接或多个表查找,并且无SQL数据库在这里并不优越。关系数据库也一样好。甚至对于简单的值,也可以不使用SQL数据库(例如,Redis哪个是键-值对存储)优于关系数据库?
发布于 2019-06-16 16:16:09
我认为你对这个问题的总体理解是正确的,尽管NoSQL供应商可能会声称他们还提供了其他好处-主要是“只有在最终一致性的情况下才能进行大规模的横向扩展”。
他们可能不会告诉您,许多SQL数据库也可以在某种程度上向外扩展(通常是通过复制的方式,但也有更高级的概念)。但是,由于大多数SQL数据库都遵循SQL的严格一致性模型,因此横向扩展功能通常仅限于在不放弃一致性的情况下可能实现的扩展。但即使在那里,也存在例外-例如异步复制(用于只读加载),“主-主”复制(用于读/写加载)。
关于你最初的问题(标准化,连接),我还想补充一下,SQL database do not要求你将数据分割成单独的列,或者将它们分散到表中。它们为提供了这种方式,但它们也允许您将JSON文档存储在单个列中,这本质上将您的参数扩展到所有文档存储。
如果你能抽出15分钟,看一下我演讲的录像:https://www.youtube.com/watch?v=swR33jIhW8Q
https://stackoverflow.com/questions/56616215
复制相似问题