2010-04-06 86 views
8

如果文档数量多,CouchDB中的数据查询速度会变慢吗?CouchDB查询性能

示例场景:

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

问题: 查询数据库是否需要2至3秒钟以匹配客户名称? 如果CouchDB中有很多文档(比如100000个文档),查询是否会花费更多时间来处理每个查询?

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

在此先感谢。

回答

7

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

如果您有更多的文档,查询时间不会显着增加。从技术上讲,访问时间随文档数量呈对数增长。但是,在实践中,提取文档基本上是不变的,并且不太可能成为问题。

+0

嗨@JasonSmith,有没有办法解决首次性能慢的问题?我已经看到视图上的第一次击中需要永远(在一个视图中处理10k文档)。有没有办法检测视图是否在第一次运行之前运行? – Bundeeteddee 2015-03-18 03:59:58

+0

@Bundeeteddee您可以添加?stale = update_after选项,该选项将立即返回视图中的任何内容,并且它将开始刷新后台中的视图。这将做一个权衡:你立即得到答案,但它可能不是最新的数据。或者,您可以查询_canges?feed = continuous,然后您可以在CouchDB通知您发生更改时查询视图。这需要一些工作,但这是最确定的方式 – JasonSmith 2015-03-18 08:06:27