【问题标题】:CouchDB query performanceCouchDB 查询性能
【发布时间】:2011-02-05 00:19:42
【问题描述】:

如果文档数越多,CouchDB 中查询数据是否会变慢?

示例场景:

  • 我有一个用于客户姓名的组合框。当用户键入客户名称时,我必须进行自动填充。
  • CouchDB 中将有大约 10,000 个客户文档。我知道我必须创建一个视图来做同样的事情。
  • CouchDB 数据库位于应用程序所在的本地计算机中。

问题: 查询数据库以查找匹配的客户名称是否需要超过 2 到 3 秒? 如果 CouchDB 中有很多文档(比如大约 100000 个文档),每次查询会花费更多时间吗?

任何有关如何创建视图/索引的指示都会有所帮助。

提前致谢。

【问题讨论】:

    标签: performance couchdb


    【解决方案1】:

    视图在每个文档上运行,但只运行一次。之后,文档的视图值将被永久存储。按名称获取客户会非常快,因为查询时视图中通常只有几个新文档需要处理。

    如果您有更多文档,查询时间不会显着增加。从技术上讲,访问时间与文档数量成对数增长。然而,在实践中,获取文档基本上是固定时间,不太可能成为问题。

    【讨论】:

    • 嗨@JasonSmith,有没有办法解决首次性能缓慢的问题?我肯定已经看到视图上的第一次命中需要永远(在一个视图中处理 10k 个文档)。有没有办法检测视图是否已经运行过/第一次执行此操作?
    • @Bundeeteddee 您可以添加 ?stale=update_after 选项,它将立即返回视图中的任何内容,并开始在后台刷新视图。这将做一个权衡:你会立即得到答案,但它可能不是最新的数据。或者,您可以查询 _canges?feed=continuous,然后您可以在 CouchDB 通知您发生更改时查询视图。这需要一些工作,但这是最可靠的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多