mongodb 查询优化器处理查询, 并在给定可用索引的情况下为查询选择最有效的查询计划。然后, 查询系统在每次运行查询时都使用此查询计划。
查询优化器仅缓存那些可以有多个可行计划的查询形状的计划。
对于每个查询, 查询计划程序将在查询计划缓存中搜索适合查询形状的项。如果没有匹配的条目, 查询计划程序将生成候选计划, 以便在试用期内进行评估。查询计划器选择一个获胜计划, 创建一个包含获胜计划的缓存条目, 并使用它来生成结果文档。
如果存在匹配的条目, 查询计划程序将基于该条目生成一个计划, 并通过重新规划机制评估其性能。此机制根据计划性能做出传递失败决策, 并保留或删除缓存项。在逐出时, 查询计划程序使用正常规划选择新计划