【问题标题】:How to update large dataset - several hundreds million documents - in mongodb?如何在 mongodb 中更新大型数据集 - 数亿个文档?
【发布时间】:2015-06-19 15:35:06
【问题描述】:

我正在使用 C# mongodb 驱动程序。 Mongod 版本为 3。更新倍数设置为 true { multi: true }。尝试一一更新数据库中的所有集合。我还能做些什么来加快速度?

更新操作是在 RAM 中进行还是在硬盘中进行?

【问题讨论】:

    标签: c# mongodb mongodb-query mongodb-.net-driver


    【解决方案1】:

    您可以将collection.BulkWriteAsyncnew BulkWriteOptions {IsOrdered = false} 一起使用。无序操作列表允许服务器并行执行操作。

    【讨论】:

      【解决方案2】:

      MongoDB 是多线程的,但只能由客户端提供的操作。一旦一个线程接受了一个操作,该单个线程将完成该任务。如果您可以将更新的过滤器组件分解为精确(并且可能不重叠)的区域,并且您可以使用 3.0 和 WiredTiger 存储引擎进行多线程编程,您将显着提高整体吞吐量。

      更新命中 RAM 中的页面并使其变脏,并且操作被记录(快速)以进行重放恢复。脏 RAM 页面的刷新频率要低得多,例如每 60 秒一次。

      【讨论】:

        猜你喜欢
        • 2012-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-23
        • 2018-12-29
        • 2018-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多