最近我听说了很多关于CouchDB的事情,但是对它提供了什么功能感到困惑。
很难用严格的优劣形式来解释所有的差异。
我建议你自己尝试使用CouchDB。你会发现,在最初使用时,学习曲线完全与关系型数据库相反。
在关系型数据库中,你需要花费大量时间对真实世界的数据进行建模,以将其存储到数据库中。一旦完成了建模,你就可以进行各种查询。
而在CouchDB中,你只需将所有数据存储为JSON格式,并在几分钟内存储到数据库中。你不需要进行任何规范化或类似的操作,传输方式是HTTP,因此你有很多客户端选项。
然后,你会注意到在编写map函数、学习键排序方式以及针对所编写视图的查询时,存在很大的学习曲线。一旦你学会了它们,你就会开始看到视图如何允许你规范化索引,同时保留数据的非规范化和“自然”状态。
请看这里。 我认为更好的答案是:
就像CouchDB并不总是最适合的工具一样,关系型数据库也不总是最好的答案。
CouchDB是一个磁盘占用量很大的数据库,因为它不会更新文档——每次更新时都会创建一个新版本,所以不浪费空间的部分(因为你没有空字段)被版本覆盖了。