gpt4 book ai didi

mongodb - Mongo 数据库操作中的批量插入和数组插入有什么区别

转载 作者:可可西里 更新时间:2023-11-01 09:35:58 26 4
gpt4 key购买 nike

我想知道以下查询在性能上有何不同。我知道批量插入是按顺序执行的,普通/数组插入也是按顺序执行的。

批量插入

var bulk = db.items.initializeUnorderedBulkOp();
bulk.insert( { _id: 1, item: "abc123", status: "A", soldQty: 5000 } );
bulk.insert( { _id: 2, item: "abc456", status: "A", soldQty: 150 } );
bulk.insert( { _id: 3, item: "abc789", status: "P", soldQty: 0 } );
bulk.execute( { w: "majority", wtimeout: 5000 } );

普通插入

db.items.insert( { _id: 1, item: "abc123", status: "A", soldQty: 5000 } );
db.items.insert( { _id: 2, item: "abc456", status: "A", soldQty: 150 } );
db.items.insert( { _id: 3, item: "abc789", status: "P", soldQty: 0 } );

数组插入

var array_insert = [
{ _id: 1, item: "abc123", status: "A", soldQty: 5000 } ,
{ _id: 2, item: "abc456", status: "A", soldQty: 150 } ,
{ _id: 3, item: "abc789", status: "P", soldQty: 0 }
] ;
db.items.insert( array_insert );

任何人都可以解释上述查询在性能或优势方面的差异吗?

最佳答案

批量插入速度更快,因为插入是一次性发送的。将其与发送一个插入的常规流程进行比较,等待服务器回复,然后才发送下一个插入。

无论模式如何(批量与常规),服务器插入所有内容所需的工作量相同。在常规模式下,客户端在等待服务器响应时会丢失时间。不一定是因为服务器很慢。网络也可能很慢。

无论使用何种数据库,批处理请求都是加速应用程序的常用方法。参见,例如,pipelining in Redis .

关于mongodb - Mongo 数据库操作中的批量插入和数组插入有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30342727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com