当前位置:  开发笔记 > 后端 > 正文

如何在CouchDB中安排索引更新

如何解决《如何在CouchDB中安排索引更新》经验,为你挑选了3个好方法。

据我所知,CouchDB索引在查询视图时会更新.假设有更多的读取而不是写入,这对缩放来说不是很糟糕吗?如何配置CouchDB以更新写入索引,或者更好地按时间表更新?



1> Paul J. Davi..:

CouchDB确实在更新时重新生成视图,但仅限于自上次对视图的读访问以来发生的更改.假设您的读取量大大超过了您的写入量,这应该不是问题.

当您一次更改大量文档时,这可能会导致第一次读取请求花费大量时间.为了缓解这种情况,已经提出了一些不同的可能性.大多数人依靠注册CouchDB的更新通知并自动触发读取.

用于完成该操作的示例脚本可在[1]的CouchDB wiki上获得.

[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate



2> Jan Lehnardt..:

a)"缩放"是一个超载的术语.你指的是哪种"缩放"?(无论哪种方式,我都看不出它对你产生的负面影响).

b)写入更新:在写入后查询您的视图.请注意,向索引添加一堆数据更加资源友好(不是特定于CouchDB).因此,您可能希望每N次写入触发您的视图.

c)预定:设置一个cronjob,每隔M分钟查询您的视图.

d)等待CouchDB发展,为您提供允许您使用配置参数进行设置的基础结构.

e)(最佳选择).亲自动手,帮助我们抛光CouchDB!任何贡献都非常感谢.

d)RTFM(眨眼 :)



3> Till..:

你不能也是,为什么你想要那个?

想想就是这样:

当您将数据导入MySQL时,您可以转换为indizes,因为更新您插入的每一行的索引比在一次运行中更新100次写入(或导入的行数多)的索引更昂贵.

这就是CouchDB在读取时更新索引的原因,因为同时集成这100个更改的成本更低,然后在写入时每次更改.

这是CouchDB的优势之一!:)我不是说这是CouchDB唯一的功能,但在阅读时这样做很聪明.

你可以做的一件事是使用update = false读取,这是一个脏读,可能不会返回你期望的.如果你总是这样做,你可以安排通过cronjob"定期"阅读并用它更新你的索引.我觉得这没有道理.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有