MongoDB——索引属性之隐藏索引(Hidden Indexes)
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB——索引属性之隐藏索引(Hidden Indexes)相关的知识,希望对你有一定的参考价值。
目录
一、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()
以上是关于MongoDB——索引属性之隐藏索引(Hidden Indexes)的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB——索引属性之部分索引(Partial Indexes)
MongoDB——索引属性之稀疏索引(Sparse Indexes)
MongoDB——索引属性之稀疏索引(Sparse Indexes)
MongoDB——索引属性之部分索引(Partial Indexes)