CouchDB在OLAP中表现如何?

CouchDB在OLAP中表现如何?,couchdb,Couchdb,我有一个数据表,由大量(比如10亿)向量组成[x1,x2,x3],我想问一些典型的OLAP问题,比如“对于给定范围内x1的所有向量,v3的平均值是多少?”与真正的OLAP不同,这些问题不是特别的:我只有几个预定义的问题 在SQL数据库中,可以说,如果列未编入索引,则空间要求为O(n),时间要求也是O(n);索引为时间提供了O(logn),而为空间提供了O(logn) 那么,CouchDB在性能方面大致相当吗?好多了?更糟糕吗?如果您想执行特殊查询,CouchDB通常会更糟糕,如果您有预烘焙查询,

我有一个数据表,由大量(比如10亿)向量组成
[x1,x2,x3]
,我想问一些典型的OLAP问题,比如“对于给定范围内x1的所有向量,v3的平均值是多少?”与真正的OLAP不同,这些问题不是特别的:我只有几个预定义的问题

在SQL数据库中,可以说,如果列未编入索引,则空间要求为O(n),时间要求也是O(n);索引为时间提供了O(logn),而为空间提供了O(logn)


那么,CouchDB在性能方面大致相当吗?好多了?更糟糕吗?

如果您想执行特殊查询,CouchDB通常会更糟糕,如果您有预烘焙查询,它会更好

这只是CouchDB的一个技术要点,而不是NOSQL和SQL


CouchDB在特殊查询方面稍慢一些,我认为这需要表扫描。但是视图会随着数据的增量添加而增量更新,因此它有助于维护诸如“总和”、“计数”或任何其他可以映射减少的内容。

如果您有一些查询,并且可以使用Map/Reduce来表达它们,那么coach会更快,因为v3的值会预先计算,并且每次更新时都会更新答案。这是一个评论,因为我没有在实践中使用过这种特殊的风格,希望有其他有经验的人能回答。这个问题非常类似于+1非常简洁。按照我的说法,如果你对数据了解得更多,而对你要问的问题了解得更少,那么SQL就是好的;当你对数据了解较少,而对你提出的问题了解较多时,CouchDB是很好的。