2010-04-06 87 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