【发布时间】:2016-11-22 23:12:56
【问题描述】:
我刚刚注意到,在 Couchdb 2.0 的 the release notes 中,提到了建议将 Mango 查询用于新应用程序。还提到 Mango 索引显然比 javascript 查询快 2 倍到 x10 倍,这真的让我感到惊讶,因此我有很多问题:
- 是否正在逐步淘汰 Map/Reduce 视图?我希望答案是否定的,因为在我看来 Mango 并没有涵盖 Map/Reduce 的所有用例(最简单的例子是 Reduce 本身),而且这种查询风格的灵活性似乎也更加有限。但是因为推荐,我更喜欢问:
我们建议所有新应用开始默认使用 Mango。
- 我们知道 Map/Reduce 视图依赖于 B 树,但我在文档或邮件列表中找不到任何关于 Mango 背后的魔力的见解。芒果对我来说基本上是白魔法。然而,我可以说,深入了解如何在幕后对 javascript 视图进行索引非常有助于避免陷阱、幼稚的实现以及优化性能。有人对 Mango 的工作原理有任何见解吗?索引也是B树吗?由于不再有设计文档,索引何时更新?性能提升从何而来? (这些收益对我来说是违反直觉的,因为在我的理解中,javascript 查询的性能来自于 Map 函数的预计算性质)
我所追求的一方面是对 Mango 的一些见解,另一方面是对 Mango 和 Map/Reduce 在 2.x 时代应该如何共存的概述。
【问题讨论】:
标签: couchdb couchdb-mango