我正在使用C#mongodb驱动程序。 Mongod版本为3.更新倍数设置为true {multi:true}。尝试逐个更新数据库中的所有集合。我还能做些什么来加快速度吗?
更新操作是在RAM中发生还是转到硬盘?
答案 0 :(得分:2)
您可以将collection.BulkWriteAsync
与new BulkWriteOptions {IsOrdered = false}
一起使用。无序操作列表允许服务器并行执行操作。
答案 1 :(得分:0)
MongoDB是多线程的,但仅限于客户端提供的操作。一旦线程获取操作,该单个线程将完成该任务。如果您可以将更新的过滤器组件拆分为精确(也可能是非重叠)区域,并且可以使用3.0和WiredTiger存储引擎进行多线程编程,则可以显着提高整体吞吐量。
更新命中RAM中的页面并使其变脏,并且op被记录(快速)以进行重放恢复。脏RAM页面的刷新次数要少得多,就像每60秒一样。