MongoDB查询计划缓存方法2025年3月17日 | 阅读 3 分钟 #1. db.collection.getPlanCache()使用集合的计划缓存对象允许您访问此方法。我们需要使用db.collection.getPlanCache()方法来检索计划缓存对象。该方法返回一个已用于集合访问查询计划缓存的接口,并提供了一个查看和清除查询计划缓存的方法。 查询优化器可以缓存具有多个可实现计划的查询形状。 以下方法通过接口可用 PlanCache.help: 此方法可以通过指定集合的计划缓存对象访问,并显示指定集合的查询计划缓存的可用方法,即,db.collection.getPlanCache().help()。 PlanCache.listQueryShapes(): 此方法可以通过指定集合的计划缓存对象访问,并显示存在缓存查询计划的查询形状,即db.collection.getPlanCache().listQueryShapes()。 PlanCache.getPlansByQuery(): 此方法可以通过指定集合的计划缓存对象访问,并显示参数化查询形状的缓存查询计划,即db.collection.getPlanCache().getPlansByQuery()。 PlanCache.clearPlansByQuery(): 此方法可以通过特定集合的计划缓存对象访问,并清除参数化查询形状的缓存查询计划,即db.collection.getPlanCache().clearPlansByQuery() PlanCache.clear(): 此方法可以通过特定集合的计划缓存对象访问,并清除集合的所有缓存查询计划,即db.collection.getPlanCache().clear() ![]() #2. PlanCache.clear()clear方法仅可从计划缓存对象中使用,以删除指定集合的所有缓存查询计划。 例如 - 清除学生集合的缓存。 ![]() #3. PlanCache.clearPlansByQuery()此方法清除指定查询形状的缓存查询计划,并且可以从特定集合的计划缓存对象中使用; 即 PlanCache.clearPlansByQuery()方法接受以下参数 查询文档: 此参数是查询形状的查询谓词。谓词的结构和字段名称对于形状很重要,查询谓词中的值无关紧要。 投影文档: 它是可选参数,如果指定排序参数则需要。 它可以用于与查询形状关联的投影。 示例 如果一个订单集合具有以下查询形状 以下操作将删除为该形状缓存的查询计划 输出 ![]() #4. PlanCache.help()显示可用于查看和修改集合查询计划缓存的方法。 该方法仅可从特定集合的计划缓存对象中使用; 即 #5. PlanCache.listQueryShapes()该方法已从4.2版本中弃用,用于显示缓存查询计划存在的查询形状。 如果您使用的是旧版本的MongoDB,则可以使用此方法。 所有查询形状都与查询哈希相关联,以帮助识别具有相同查询形状的慢查询。 语法 示例 order集合具有与查询形状相关联的缓存计划。 该方法将返回当前在缓存中的查询形状数组。 下一个主题用户管理方法 |
我们请求您订阅我们的新闻通讯以获取最新更新。