我遇到以下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版
编辑:我认为这可能是结果的长度。查询尺寸较小的文档后,执行时间减半。
答案 0 :(得分:0)
reslen:3044791
这是性能不佳的根源。通过添加投影选项以仅返回特定字段来减少这种情况,可以将执行时间从平均90毫秒提高到7毫秒。