gpt4 book ai didi

MongoDB——索引属性之隐藏索引(Hidden Indexes)

转载 作者:知者 更新时间:2024-03-13 01:02:24 26 4
gpt4 key购买 nike

一、MongoDB官网地址

二、隐藏索引(Hidden Indexes)的概述

  • 隐藏索引对查询规划器不可见,不能用于支持查询。
  • 通过对规划器隐藏索引,用户可以在不实际删除索引的情况下评估删除索引的潜在影响。如果影响是负面的,用户可以取消隐藏索引,而不必重新创建已删除的索引。4.4新版功能。

三、隐藏索引(Hidden Indexes)的语法

  • 创建隐藏索引(创建单键索引并指定hidden属性为true)
db.collection.createIndex({fileName:1},{hidden:true});
  • 隐藏现有索引
db.collection.hideIndex({fileName:1});
#或者
db.collection.hideIndex("索引名称")
  • 取消隐藏索引
db.collection.unhideIndex({fileName:1});
#或者
db.collection.unhideIndex("索引名称");

四、隐藏索引(Hidden Indexes)的示例

4.1、数据准备

  • 初始化数据
db.scores.insertMany([
 {"userid" : "newbie"},
 {"userid" : "abby", "score" : 82},
 {"userid" : "nina", "score" : 90}
])

  • 查看初始化数据
db.getCollection('scores').find({})

4.2、创建隐藏索引并测试查询是否使用到索引

  • 再scores集合中的userid字段创建隐藏索引
db.scores.createIndex(
 { userid: 1 },
 { hidden: true }
);

  • 查看索引信息
db.scores.getIndexes()

  • 测试:由下图的执行计划结果可知,没有使用索引
db.scores.find({userid:"abby"}).explain()

4.3、取消创建的隐藏索引并测试查询是否使用到索引

  • 再scores集合中的userid字段取消创建的隐藏索引
db.scores.unhideIndex( { userid: 1} );

  • 查看索引信息
db.scores.getIndexes()

  • 测试:由下图的执行计划结果可知,使用了索引
db.scores.find({userid:"abby"}).explain()

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com