代码之家  ›  专栏  ›  技术社区  ›  joeforker

CouchDB是否共享多个视图使用的映射函数?

  •  1
  • joeforker  · 技术社区  · 7 年前

    CouchDB的文档表示,它支持具有相同映射功能但不同reduce功能的多个视图。如果两个视图位于同一设计文档中,则映射函数将只计算一次。

    这是正确的吗?数据库是否比较JavaScript映射函数的文本以决定是否共享映射?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Jonathan Hall    7 年前

    CouchDB本身不这样做。这是一个实现细节 query server 做理论上,查询服务器可以为将来的会话缓存函数,从而提供与您所描述的类似的好处。

    在实践中,我预计对于大多数解释语言(如javascript)来说,性能增益将是微乎其微的(因为执行已经是批处理的),因此在一般情况下可能不值得。对于某些工作负载来说,这可能是值得的,因为您可能需要编写自己的查询服务器。

    如果为编译语言(C、Java、Go等)使用查询服务器,那么缓存编译后的工件以供重用可能是有意义的。