據我所知,當查詢查詢時會更新CouchDB索引。假設有更多的讀取比寫入,這不是縮放的不好嗎?我如何配置CouchDB以便在寫入時更新索引,或更好地按照時間表更新?如何在CouchDB中安排索引更新
18
A
回答
26
CouchDB確實在更新時重新生成視圖,但僅限於上次對視圖的讀取訪問後發生了更改。假設您的讀取卷大大超過您的寫入量,這應該不成問題。
當您一次更改大量文檔時,這可能會導致第一次讀取請求花費大量時間。爲了緩解這種情況,已經提出了一些不同的可能性。大多數依靠註冊CouchDB的更新通知並自動觸發讀取。
在CouchDB維基[1]上提供了一個用於完成該操作的示例腳本。
[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate
5
你不能也,爲什麼你想呢?
想想看這樣的:
- 當您將數據導入到MySQL中,你可以把indizes的,因爲它更昂貴的更新索引你插入的每一行,比它更新100指數在一次運行中寫入(或導入多行)。
- 這就是爲什麼CouchDB在讀取時更新索引的原因,因爲它同時集成這100個更改的成本較低,然後在寫入時更改每個更改。
這是CouchDB的優點之一! :)我並不是說這是一個CouchDB專用功能,但是在閱讀時這樣做很明智。
你可以做的一件事是閱讀更新= false,這是一個髒讀,可能不會返回你所期望的。如果你總是這樣做,你可以通過cronjob安排一個「常規」閱讀,並用它來更新你的索引。我只是覺得沒有道理。
9
a)「縮放」是這樣一個超負荷的術語。你指的是什麼樣的縮放比例? (無論哪種方式,我都看不清楚它是如何影響你的)。
b)寫入更新:在寫入之後查詢您的視圖。請注意,將大量數據添加到索引中會更加資源友好(不特定於CouchDB)。所以你可能想要在N次寫入時觸發你的視圖。
c)計劃:設置一個每M分鐘查詢一次你的視圖的cronjob。
d)等待CouchDB的發展,爲您提供允許您使用配置參數進行設置的基礎結構。
e)(BEST OPTION)。把你的手弄髒,幫助我們拋光CouchDB!任何貢獻,高度讚賞。
相關問題
- 1. 如何在nodejs中使用elasticsearch更新couchdb時自動更新索引行
- 2. 如何在CouchDB中更新會話
- 3. 當索引鍵在表中更新時,索引更新如何工作?
- 4. 如何更新solr索引?
- 5. 如何更新Lucene.NET索引?
- 6. 如何在重新排序TableView時更改CoreData的索引?
- 7. 在CouchDB中更新文檔
- 8. 如何重新安排多列到同一索引的一列
- 9. 如何更新CouchDB中的文檔
- 10. AngularUI UI排序索引更新問題
- 11. 在CouchDB中創建分頁索引?
- 12. 我如何知道在solr索引中更改,更新和索引的文檔?
- 13. 在Couchdb中排序
- 14. 如何在Azure中索引更新後自動更新文檔搜索
- 15. 如何在CouchDB 2.0中創建TEXT索引?
- 16. 索引在動態視圖排列示例中未更新
- 17. 如何在Perl中重新排列數組索引?
- 18. 如何在DataGridView中重新排列列的機會列索引?
- 19. ElasticSearch:在每次更新後創建新的倒排索引
- 20. 索引和倒排索引在solr中如何工作?
- 21. 在Wordpress 3中安排更新帖子?
- 22. 在Django中安排表更新
- 23. CouchDB查看索引性能
- 24. 加載CouchDB查看索引
- 25. 如何對CouchDB中數組索引(標籤)使用CouchDB的 - lucene的
- 26. 如何在PostgreSQL for Windows中安排更新查詢?
- 27. 如何在java程序中的couchdb中執行更新操作
- 28. 如何手動更新Maven索引?
- 29. 如何同步更新lucene索引?
- 30. 如何手動更新MySQL表索引?
有沒有辦法來傳播指數計算在多臺計算機或完成它時自動複製設置? – 2012-10-02 11:01:43
@ThomasFankhauser:sharding?請參閱BigCouch – OrangeDog 2012-10-30 10:13:27