【发布时间】:2022-03-29 14:00:54
【问题描述】:
我正在使用 MongoDB 来保存日志数据。而我的目标是零丢弃日志记录。现在我使用InsertManyAsync 写入多个日志数据。但在 MongoDB 中也有类似 BulkWriteAsync 的方法。
InsertMany 和 BulkWrite 的性能有何不同?本地写和网络写?
【问题讨论】:
标签: c# mongodb mongodb-.net-driver
我正在使用 MongoDB 来保存日志数据。而我的目标是零丢弃日志记录。现在我使用InsertManyAsync 写入多个日志数据。但在 MongoDB 中也有类似 BulkWriteAsync 的方法。
InsertMany 和 BulkWrite 的性能有何不同?本地写和网络写?
【问题讨论】:
标签: c# mongodb mongodb-.net-driver
好的,这是两个问题:
InsertMany 与 BulkWrite
使用BulkWrite,您可以在与 mongoDB 的单个连接中执行许多操作。 内部,InsertMany使用BulkWrite,所以没有区别,只是为了方便。
This question was already solved.
同步与异步
当您执行同步操作时,您的应用程序将等待 MongoDB 完成工作。使用异步操作,您可以同时执行许多操作。服务器端和客户端。
【讨论】:
BulkWrite 支持混合写入操作(插入、删除和更新),而 insertMany(如其名称所示)仅插入文档。
【讨论】:
BulkWriteAsync 在后台使用 InsertManyAsync 进行插入操作。唯一的区别是 BulkWriteAsync 允许您在一个屋檐下执行不同的操作(插入、更新、删除)。但是,如果您在 BulkWriteAsync 和 InsertManyAsync 之间争论插入一堆文档,建议直接使用 InsertManyAsync。
【讨论】: