tob*_*777 11 couchdb couchdb-mango
我刚才注意到在Couchdb 2.0 的发行说明中,提到Mango查询建议用于新的应用程序.还有人提到,Mango索引显然比javascript查询快2到x10,这让我感到很惊讶,因此我有很多问题:
我们建议所有新应用都默认使用Mango.
我主要关注的是一方面有关芒果的一些见解,另一方面,概述芒果和地图/减少应该如何在2.x时代共同生活.
我最近尝试将我的应用切换到使用Mango查询,结果是完全废弃它并切换回map/reduce.以下是我的一些原因:
您的里程可能会有所不同,但只是想留下一个警告,这仍然是一个很新的功能.
来自核心开发人员的回答:
一些好问题.我不认为芒果会完全取代Map/Reduce.它是一种替代查询工具.理解Mango查询语法的好处在于它易于理解和入门.我们可以在很多地方使用它来查询文档.它可用于复制过滤和更改源.我们希望尽快支持验证文档更新.
Mango正在使用erlang map/reduce.这意味着它正在创建一个B树索引,就像map/reduce一样.更快的是它使用erlang/native函数来创建B-Tree而不是javascript.很久以前我写了一篇关于PouchDB-find [1]内部的博客文章,它是PouchDB的芒果语法.它可能会帮助您更好地了解内部的工作原理.要理解的关键是有一个Map查询部分,它使用B-Tree和内存中的过滤器.理想情况下,您执行的内存过滤越少,查询速度就越快.
我会说芒果是一个非常重要的工作,但基本的基础工作已经完成.肯定有一些我们可以改进的东西.我已经看到它在开发人员启动一个新项目时使用了很多,因为它可以快速简单地进行基本查询,例如通过电子邮件地址查找或查找名为"John Rambo"的所有用户.
希望有所帮助.
[1] http://www.redcometlabs.com/blog/2015/12/1/a-look-under-the-covers-of-pouchdb-find
| 归档时间: |
|
| 查看次数: |
3185 次 |
| 最近记录: |