如何在mongodb中更新大型数据集 - 数亿个文档?

时间:2015-06-19 15:35:07

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

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

更新操作是在RAM中发生还是转到硬盘?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

更新命中RAM中的页面并使其变脏,并且op被记录(快速)以进行重放恢复。脏RAM页面的刷新次数要少得多,就像每60秒一样。