【问题标题】:Efficient bulk deletion of documents in couch DB高效批量删除 couchDB 中的文档
【发布时间】:2013-10-29 16:23:47
【问题描述】:

我有一个需要定期删除文档的数据库。它将在每批 100k 个文档的范围内。

截至今天,这是通过首先向视图发出请求来实现的,该视图返回要删除的文档的 _id:s 和 _rev:s 列表。

然后我对这些文档中的每一个都向 hostname/database/_id?=_rev 发出 http DELETE 请求。

对我来说,这似乎效率低得离谱,因为我必须对这 100k 个文档中的每一个进行 http 请求。

有没有更有效的方法来删除沙发上的大量文档?我一直在寻找类似于 POST 的命令来创建新文档,您可以在其中发送 http 正文中的数据。或者在 mapreduce 中执行此操作的方式。但到目前为止还没有运气。

【问题讨论】:

    标签: mapreduce nosql couchdb couchapp


    【解决方案1】:

    您可以将所有删除操作捆绑到一个bulk_docs update

    对于 100k 的文档,您会注意到该操作需要一点时间,但比单独的 DELETE 更新要快得多。

    【讨论】:

    • 我已经准备好手术需要一些时间了。这仍然比我所拥有的要好得多。我一定忘记了您可以从该更新中设置 _deleted 标志。不过有一个问题,当compact 运行时,这是否会导致从数据库中真正删除文档,还是只会使其不可见?
    猜你喜欢
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多