繁体   English   中英

MongoDB批量更新很慢

[英]MongoDB Bulk Update is slow

我正在运行Mongo 2.6.3我正在更新大约900条记录,有时甚至多达5000条记录。 我之前在循环中有这个,并且对于900个记录,upserts花了大约1分钟来完成。

现在,我正在使用initializeUnorderedBulkOp API,它为900条记录花了大约40秒。 为什么这么慢?

我基本上有

var batch = collection.initializeUnorderedBulkOp({useLegacyOps: true});
// for loop
batch.find(query).upsert().updateOne({my object});
batch.execute({w:0},function(err, result) {

这是使用节点驱动程序。 这些调用的网络面板的屏幕截图http://cl.ly/image/0L2a0o0w1I1b

当数据较小时,花费的时间较少,因此肯定存在许多记录问题。 最后,我的对象并不大,它们可能是9键左右,没有大数据。

关于如何缩短这个时间的任何想法?

根据您的评论,您的find查询未使用将提示完整集合扫描的索引。

在集合中添加一个可供find(query)使用的索引; 使用explain()确认它正被使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM