MongoDB - 查询缓存方法

MongoDB - 查询缓存方法 首页 / MongoDB入门教程 / MongoDB - 查询缓存方法

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()

MongoDB Query Plan Cache Methods

PlanCache.clear()

clear方法仅可用于计划缓存的对象中,以删除指定集合的​​所有缓存的查询计划。

例如 - 清除student集合的缓存。

db.student.getPlanCache().clear()
MongoDB Query Plan Cache Methods

PlanCache.clearPlansByQuery()

此方法清除指定查询的缓存查询计划,并且可以从特定集合的计划缓存对象中使用该查询计划;

db.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort> )

示例

如果具有以下查询:

链接:https://www.learnfk.comhttps://www.learnfk.com/mongodb/mongodb-query-plan-cache-methods.html

来源:LearnFk无涯教程网

{
  "query" : { "qty" : { "$gt" : 10 } },
  "sort" : { "ord_date" : 1 },
  "projection" : { },
  "queryHash" : "9AAD95BE"//Available starting in MongoDB 4.2
}

以下操作将删除为该形状缓存的查询计划:

db.orders.getPlanCache().clearPlansByQuery(
   { "qty" : { "$gt" : 10 } },
   { },
   { "ord_date" : 1 }
)

输出:

MongoDB Query Plan Cache Methods

PlanCache.help()

显示可用于查看和修改集合的查询计划缓存的方法。该方法仅可从特定集合的计划缓存对象中使用。

db.collection.getPlanCache().help()

Plank.ListQueryShapes()

从版本4.2开始弃用该方法,该方法用于显示存在缓存的查询计划的查询。如果您使用的是较旧版本的MongoDB,则可以使用此方法。所有查询都与查询哈希关联,以帮助识别具有相同查询形状的慢速查询。

语法:

db.collection.getPlanCache().listQueryShapes()

示例:

db.orders.getPlanCache().listQueryShapes()

该方法将返回当前位于缓存内部的查询数组。

[
  {
    "query" : { "qty" : { "$gt" : 10 } },
    "sort" : { "ord_date" : 1 },
    "projection" : { },
    "queryHash" : "9AAD95BE" 
  {
    "query" : { "$or" :
       [
         { "qty" : { "$gt" : 15 }, "item" : "xyz123" },
         { "status" : "A" }
       ]
    },
    "sort" : { },
    "projection" : { },
    "queryHash" : "0A087AD0"  
  },
  {
    "query" : { "$or" : [ { "qty" : { "$gt" : 15 } }, { "status" : "A" } ] },
    "sort" : { },
    "projection" : { },
    "queryHash" : "DA43B020"
  }
]

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

TensorFlow快速入门与实战 -〔彭靖田〕

Flutter核心技术与实战 -〔陈航〕

小马哥讲Spring核心编程思想 -〔小马哥〕

微信小程序全栈开发实战 -〔李艺〕

Spark核心原理与实战 -〔王磊〕

性能优化高手课 -〔尉刚强〕

大数据经典论文解读 -〔徐文浩〕

中间件核心技术与实战 -〔丁威〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)