2014-07-04 68 views
2

我有一個非常大的我在Cloudant上託管的couchDB數據庫。我做的早期錯誤之一是將所有的觀點都放在一個設計文檔中。當我通過添加新視圖對設計文檔進行更改時,它會再次編譯設計文檔,並使數據庫暫時不可用。大型CouchDB數據庫中設計文檔的命名約定

在我和Cloudant談過之後,他們告訴我有多個設計文檔是好的做法,在做一些閱讀之後,看起來CouchDB在每個設計文檔中運行一個視圖服務器。

現在和真正的初創時尚一樣,我們不斷添加新功能,並因此對數據庫(正在生產中)進行新的更新。無論何時我想添加一個新視圖,我都會創建一個新的設計文檔並添加視圖。

有了這個背景兩個問題。

  1. 這是正確的做法嗎?
  2. 我的設計文檔應遵循什麼命名方案?
+0

可能會在主題http://programmers.stackexchange.com/ –

回答

2

您可以擁有一個主設計文檔,該文檔爲另一個包含您要執行的實際視圖的設計文檔提供rewrite。主設計文檔不應有任何視圖,因此您可以隨時隨地根據需要隨時更新。採用這種方法,只要您在主設計文檔的重寫規則中正確引用了命名約定,就可以由您決定。

0

這當然不是一個壞方法。鑑於設計文檔中的視圖一起處理,更多設計文檔在構建視圖時(假設集羣可以處理視圖)爲您提供了更大的並行性。你也可以看看使用Cloudant Query,它提供了一個map/reduce的抽象層,所以你不需要關心你的設計文檔名稱。一般來說,我會建議給你的設計文件有意義的名稱 - 如果你確實需要添加新的視圖到現有的設計文檔,你可以使用this trick