据我所知,当查询查询时会更新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. 当索引键在表中更新时,索引更新如何工作?
- 3. 如何更新solr索引?
- 4. 如何更新Lucene.NET索引?
- 5. 如何在重新排序TableView时更改CoreData的索引?
- 6. 在CouchDB中更新文档
- 7. 如何重新安排多列到同一索引的一列
- 8. 如何更新CouchDB中的文档
- 9. 在CouchDB中创建分页索引?
- 10. 在Couchdb中排序
- 11. 如何在Azure中索引更新后自动更新文档搜索
- 12. 索引在动态视图排列示例中未更新
- 13. 如何在CouchDB 2.0中创建TEXT索引?
- 14. ElasticSearch:在每次更新后创建新的倒排索引
- 15. 如何在Perl中重新排列数组索引?
- 16. 索引和倒排索引在solr中如何工作?
- 17. 在Wordpress 3中安排更新帖子?
- 18. 加载CouchDB查看索引
- 19. 如何对CouchDB中数组索引(标签)使用CouchDB的 - lucene的
- 20. 如何手动更新MySQL表索引?
- 21. 如何在java程序中的couchdb中执行更新操作
- 22. 更新Couchdb文档
- 23. Aerospike索引更新
- 24. 更新lucene索引
- 25. QStackedWidget索引更新
- 26. MySQL索引更新
- 27. Azure搜索|索引更新的总排序
- 28. 如何在xampp中重新索引magento2?
- 29. 使用弹性搜索索引couchdb
- 30. 在ElasticSearch中重新索引索引以更改分片数量
有没有办法来传播指数计算在多台计算机或完成它时自动复制设置? – 2012-10-02 11:01:43
@ThomasFankhauser:sharding?请参阅BigCouch – OrangeDog 2012-10-30 10:13:27