MongoDB 查询计划缓存命令

MongoDB 查询计划缓存命令

MongoDB planCacheClear命令

planCacheClear命令用于删除集合的缓存查询计划。它声明要删除该形状的缓存查询计划的查询形状。

语法:

   db.runCommand(
   {
      planCacheClear: <collection name>,
      query: <query here>,
      sort: <sorting algo>,
      projection: <projection>
   }
)

命令字段

字段 类型 描述
query 文档 它包含了形状查询的前缀。
projection 文档 它包含了与查询形状相关联的投影细节。
sort 文档 它包含了与查询形状相关联的排序细节。

示例:

我们有以下查询形式:

{
  "query" : { "qty" : { "$gt" : 10 } },
  "sort" : { "ord_date" : 1 },
  "projection" : { },
  "queryHash" : "9AAD95BE" 
}

以下代码清除了关于形状的查询计划缓存:

db.runCommand(
   {
      planCacheClear: "orders",
      query: { "qty" : { "$gt" : 10 } },
      sort: { "ord_date" : 1 }
   }
)

MongoDB planCacheClearFilters 命令

planCacheClearFilters 命令用于移除集合上的索引过滤器。使用该命令还可以清除现有的索引过滤器,但索引过滤器仅在服务器进程运行期间存在,不会在关闭后持久存在。

语法:

db.runCommand(
   {
      planCacheClearFilters: <collection>,
      query: <query pattern>,
      sort: <sort specification>,
      projection: <projection specification>
   }
)

命令字段:

字段 类型 描述
planCache ClearFilters 字符串 声明集合的名称。
query 文档 包含与要移除的筛选器关联的查询谓词。
sort 文档 包含与要移除的筛选器关联的排序条件。
projection 文档 包含与要移除的筛选器关联的投影细节。

示例:

书籍集合包含以下两个过滤器:

{
  "query" : { "status" : "A" },
  "sort" : { "ord_date" : -1 },
  "projection" : { },
  "indexes" : [ { "status" : 1, "cust_id" : 1 } ]
}

{
  "query" : { "status" : "A" },
  "sort" : { },
  "projection" : { },
  "indexes" : [ { "status" : 1, "cust_id" : 1 } ]
}

下面的命令将删除第一个索引过滤器:

db.runCommand(
   {
      planCacheClearFilters: "orders",
      query: { "status" : "A" }
   }
)

MongoDB planCacheListFilters命令

planCacheListFilters命令列出集合中与查询形状相关的索引过滤器。

语法:

db.runCommand( { planCacheListFilters: <collection> } )

命令字段:

字段 类型 描述
planCacheListFilters 字符串 声明集合的名称

示例:

{
   "filters" : [
      {
         "query" : <query>
         "sort" : <sort>,
         "projection" : <projection>,
         "indexes" : [
            <index1>,
            ...
         ]
      },
      ...
   ],
   "ok" : 1
}

MongoDB palnCacheSetFilter 命令

此命令为集合设置索引过滤器。这是为查询形状已经存在的索引过滤器。planCacheSetFilter会覆盖之前的索引过滤器。

语法:

db.runCommand(
   {
      planCacheSetFilter: <collection>,
      query: <query>,
      sort: <sort>,
      projection: <projection>,
      indexes: [ <index1>, <index2>, ...]
   }
)

命令过滤器

字段 类型 描述
planCacheSetFilter 字符串 此字段声明集合的名称。
query 文档 它包含与索引筛选器关联的查询谓词。
sort 文档 它包含与筛选器关联的排序详细信息。
projection 文档 它包含与筛选器关联的投影。
indexes1 数组 它包含特定查询形状的索引数组。

示例:

该示例在books集合上创建了一个索引过滤器,以便对仅包含对purchase字段的相等匹配的查询进行筛选,没有任何投影和排序。

db.runCommand(
   {
      planCacheSetFilter: "books",
      query: { purchase: "MongoDB" },
      indexes: [
         { stud_id: 123, purchase: 2 },
         { purchage: 5, order_date: 01102020 }
      ]
   }
)

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程