【发布时间】:2015-06-19 15:35:06
【问题描述】:
我正在使用 C# mongodb 驱动程序。 Mongod 版本为 3。更新倍数设置为 true { multi: true }。尝试一一更新数据库中的所有集合。我还能做些什么来加快速度?
更新操作是在 RAM 中进行还是在硬盘中进行?
【问题讨论】:
标签: c# mongodb mongodb-query mongodb-.net-driver
我正在使用 C# mongodb 驱动程序。 Mongod 版本为 3。更新倍数设置为 true { multi: true }。尝试一一更新数据库中的所有集合。我还能做些什么来加快速度?
更新操作是在 RAM 中进行还是在硬盘中进行?
【问题讨论】:
标签: c# mongodb mongodb-query mongodb-.net-driver
您可以将collection.BulkWriteAsync 与new BulkWriteOptions {IsOrdered = false} 一起使用。无序操作列表允许服务器并行执行操作。
【讨论】:
MongoDB 是多线程的,但只能由客户端提供的操作。一旦一个线程接受了一个操作,该单个线程将完成该任务。如果您可以将更新的过滤器组件分解为精确(并且可能不重叠)的区域,并且您可以使用 3.0 和 WiredTiger 存储引擎进行多线程编程,您将显着提高整体吞吐量。
更新命中 RAM 中的页面并使其变脏,并且操作被记录(快速)以进行重放恢复。脏 RAM 页面的刷新频率要低得多,例如每 60 秒一次。
【讨论】: