我关心的是性能,
说当我这样做时db.xx.update({a:1}, {c:2})
,mongodb会花额外的时间来更新索引{a:1, b:1}
吗?
有没有办法分析更新操作?
如果您在更新期间更改 a 或 b 的值,则索引将被更新。如果您不更改其中任何一个值,则只有在更新过程中必须将文档重新定位到磁盘上时,才会更新索引。
确定的方法是分析您的更新 -mongod
如果它们花费的时间超过 100 毫秒,它们会记录在日志中,但您可以从mongod
较低的阈值开始(使用--slowms
开关),或者您可以打开有问题的数据库的分析,级别 2 和然后所有操作都将记录到system.profile
集合中。
在此处阅读更多信息:http: //docs.mongodb.org/manual/reference/command/profile/