Comment on page
查询计划
在本页面
对于查询,MongoDB查询优化器在给定可用索引的情况下选择并缓存效率最高的查询计划。最有效的查询计划的评估是基于查询执行计划在查询计划评估候选计划时执行的“工作单元”(works)的数量。
关联的计划缓存条目用于具有相同查询形状的后续查询。
从MongoDB 4.2开始,缓存条目与状态关联:
State | Description |
---|---|
缓存中的条目是此形状的占位符条目。也就是说,计划者已经看到了形状并计算了其成本( works 价值)并存储为占位符条目,但查询形状不用于生成查询计划。 对于查询,如果形状的缓存条目状态非活动: 1.对候选计划进行评估并选出一个获胜的计划。 2.所选计划的工作值与非活动条目的工作值进行比较。如果所选计划的works值为:小于或等于非活动条目的, 所选计划将替换占位符“不 活动”条目,并具有“ 活动”状态。 如果在替换发生之前,“ 非活动”条目变为“ 活动”(例如,由于其他查询操作),则仅当新活动条目的works 值大于所选计划时,才会替换该新活动条目。 大于非活动条目的数量, 不活动的条目仍然存在,但其工作值增加。 | |