CouchDB相对于关系型数据库有哪些优势?

9

最近我听说了很多关于CouchDB的事情,但是对它提供了什么功能感到困惑。


请参见https://dev59.com/cnRC5IYBdhLWcg3wUvQS,了解与文档数据库和关系型数据库的优缺点。 - Jason S
一个是关系型的,其架构非常严谨,而另一个则是分层或扁平化的,并具有灵活的架构。 - user177800
5个回答

6

很难用严格的优劣形式来解释所有的差异。

我建议你自己尝试使用CouchDB。你会发现,在最初使用时,学习曲线完全与关系型数据库相反。

在关系型数据库中,你需要花费大量时间对真实世界的数据进行建模,以将其存储到数据库中。一旦完成了建模,你就可以进行各种查询。

而在CouchDB中,你只需将所有数据存储为JSON格式,并在几分钟内存储到数据库中。你不需要进行任何规范化或类似的操作,传输方式是HTTP,因此你有很多客户端选项。

然后,你会注意到在编写map函数、学习键排序方式以及针对所编写视图的查询时,存在很大的学习曲线。一旦你学会了它们,你就会开始看到视图如何允许你规范化索引,同时保留数据的非规范化和“自然”状态。


2
  • 快速灵活的模式更新/更改
  • 在您选择的图灵完备语言中进行Map Reduce查询(不再使用SQL)
  • 灵活的模式设计
  • 自由形式对象存储
  • 真正易于复制
  • 真正易于负载平衡(即将推出)

2
CouchDB是一种面向文档的数据库。与关系型数据库不同,基于文档的数据库不会将数据存储在具有统一大小字段的表中。相反,每个记录都存储为具有某些特征的文档。可以向文档添加任意数量和任何长度的字段。字段还可以包含多个数据片段。 优点: - 没有必要在文档中留下空字段(因为它们不一定需要) - 通过提供一个简单的前端编辑界面,可以快速设置用于维护数据的应用程序。

1

请看这里。 我认为更好的答案是:

就像CouchDB并不总是最适合的工具一样,关系型数据库也不总是最好的答案。


只是为了明确事情。这些是保罗·约瑟夫·戴维斯的话,我真的非常赞同。 - paulosuzart
10
这是一个没有提供任何信息的回答。这是一个毫无争议的真理。为什么不告诉我们哪些工作适合哪种解决方案,以及为什么适合呢?顺便说一下,链接已经失效了。 - user151841

-5

CouchDB是一个磁盘占用量很大的数据库,因为它不会更新文档——每次更新时都会创建一个新版本,所以不浪费空间的部分(因为你没有空字段)被版本覆盖了。


这应该作为对Markus答案的评论,而不是单独的答案。 - Sasha Chedygov
2
它只会在进行压缩操作之前保留修订记录。MVCC系统用于点对点复制,这种方法非常值得临时使用磁盘空间。 - mikeal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接