【问题标题】:mongodb keep_mutation stage explainmongodb keep_mutation 阶段说明
【发布时间】:2016-01-05 19:15:54
【问题描述】:

我使用 mongo 的 explain() 来检查一些查询的性能,有时会出现 keep_mutation 阶段,如下所示:

  "executionStats" : {
            ...
            "executionStages" : {
                    "stage" : "KEEP_MUTATIONS",
                    "nReturned" : 1,
                    "executionTimeMillisEstimate" : 5460,
                    "works" : 79622,
                    ...
            }
   }

我想知道更多关于这个阶段的信息,所以我在互联网上搜索,令我惊讶的是,我什至在官方文档中都找不到与它相关的有用信息,更不用说其他网站了。有人可以帮忙解释一下吗?

【问题讨论】:

    标签: mongodb explain


    【解决方案1】:

    KeepMutationsStage 传递其所有子节点的数据,直到子节点为 EOF。然后它返回 WorkingSet 中所有通过阶段过滤器的标记元素。

    此阶段用于在可能的情况下将在查询中无效的结果合并回查询结果。查询规划器负责确定何时合并这些结果是有效的。

    Source

    【讨论】:

    • 感谢您在我发布此问题 2 个月后回答我的问题! (我认为没有人会回答这个问题)。很高兴您还发布了相关 mongodb 类的 github 源链接。 (之前不知道能在github上找到源代码)。如果您能更详细地解释一下,那将是最好的(因为答案中有很多我不理解的术语,例如:孩子的数据、标记的元素等)。提前致谢。
    【解决方案2】:

    检查this

    KEEP_MUTATIONS 阶段:当文档被删除或更新一些 Query 阶段可以收到无效通知。一些阶段标记文件 被删除。然后被标记的文档集由 KEEP_MUTATIONS 阶段,它根据 如果它们仍然匹配,则查询并返回它们。请注意,这未使用 对于 WiredTiger 引擎,仅适用于 MMAPv1。

    【讨论】:

      猜你喜欢
      • 2018-06-23
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多