参考 > 参考 > mongo Shell方法 > 查询计划缓存方法 > PlanCache.getPlansByQuery()
PlanCache.
getPlansByQuery
(<query>,<projection>,<sort> )¶从4.2版开始弃用。
注意
MongoDB 4.2添加了一个新的聚合管道阶段$planCacheStats
,该阶段
为集合提供计划缓存信息。
的$planCacheStats
聚合阶段优选在下面的方法和命令,已在4.2被弃用:
显示指定查询形状的缓存查询计划。
为了帮助识别具有相同查询形状的慢速查询,从MongoDB 4.2开始,每个查询形状都与一个queryHash关联。的queryHash
是代表查询形状的散列,并且仅依赖于所述查询形状的十六进制字符串。
注意
与任何哈希函数一样,两个不同的查询形状可能会导致相同的哈希值。但是,不同查询形状之间不会发生哈希冲突。
查询优化器仅缓存那些具有多个可行计划的查询形状的计划。
该方法仅可用于特定集合的;即plan cache object
该PlanCache.getPlansByQuery()
方法接受以下参数:
参数 | 类型 | 描述 |
---|---|---|
query |
文献 | 查询形状的查询谓词。仅谓词的结构(包括字段名)对形状很重要。查询谓词中的值不重要。 |
projection |
文献 | 可选的。与查询形状关联的投影。如果指定sort 参数,则为必需。 |
sort |
文献 | 可选的。与查询形状关联的排序。 |
返回值: | 查询形状的缓存查询计划数组。 |
---|
要查看存在缓存的查询计划的查询形状,请参阅 列出查询形状。
该PlanCache.getPlansByQuery()
方法返回与planCacheListPlans
数据库命令相同的输出。
在运行的系统上authorization
,用户必须具有包含planCacheRead
操作的访问权限。