慢的mongodb FindOneAndUpdate

时间:2019-06-04 20:13:54

标签: mongodb performance

我遇到以下findOneAndUpdate MongoDB查询问题:

planSummary: IXSCAN { id: 1 } keysExamined:1 docsExamined:1 nMatched:1 nModified:1 keysInserted:1 keysDeleted:1 numYields:0 reslen:3044791 

locks:{ Global: { acquireCount: { r: 1, w: 1 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 1 } } } 

storage:{} protocol:op_query 135ms

writeConcern: { w: 0, j: false }

如您所见,它的执行时间为+100毫秒。查询部分使用索引,耗时少于1毫秒(使用“解释查询”)。因此,写入部分很慢。

Mongo实例是3成员副本集的母版。写关注设置为0,禁用日记功能。

写入缓慢的原因可能是什么?可以更新索引吗?

MongoDB 4.0版 驱动程序:Node.js本机mongodb 3.2版

编辑:我认为这可能是结果的长度。查询尺寸较小的文档后,执行时间减半。

1 个答案:

答案 0 :(得分:0)

 reslen:3044791

这是性能不佳的根源。通过添加投影选项以仅返回特定字段来减少这种情况,可以将执行时间从平均90毫秒提高到7毫秒。