我使用mongo的explain()来检查某些查询的性能,有时会出现如下所示的keep_mutation阶段:
"executionStats" : {
...
"executionStages" : {
"stage" : "KEEP_MUTATIONS",
"nReturned" : 1,
"executionTimeMillisEstimate" : 5460,
"works" : 79622,
...
}
}我想知道更多关于这个阶段,所以我在网上搜索,令我惊讶的是,我没有找到有用的信息,甚至在官方文件,更不用说其他网站。有人能帮我解释一下吗?
发布于 2015-12-06 14:15:36
KeepMutationsStage传递它的所有子数据,直到子数据是EOF为止。然后,它返回WorkingSet中通过舞台过滤器的所有标记元素。
此阶段用于在可能的情况下将无效的中间查询结果合并回查询结果。查询计划器负责确定合并这些结果的有效性。
发布于 2016-09-13 07:52:28
检查这:
KEEP_MUTATIONS阶段:当文档被删除或更新时,一些查询阶段可以收到失效通知。已删除的某些阶段标志文档。标记文档集然后由KEEP_MUTATIONS阶段读取,该阶段将根据查询重新检查这些文档,如果它们仍然匹配,则返回它们。请注意,这不是用于WiredTiger引擎,而是仅用于MMAPv1。
https://stackoverflow.com/questions/33011166
复制相似问题