您当前的位置: 首页 >  mongodb

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

小志的博客 发布时间:2022-05-05 22:15:36 ,浏览量:0

目录
    • 一、MongoDB官网地址
    • 二、隐藏索引(Hidden Indexes)的概述
    • 三、隐藏索引(Hidden Indexes)的语法
    • 四、隐藏索引(Hidden Indexes)的示例
      • 4.1、数据准备
      • 4.2、创建隐藏索引并测试查询是否使用到索引
      • 4.3、取消创建的隐藏索引并测试查询是否使用到索引

一、MongoDB官网地址
  • MongoDB官网地址:https://www.mongodb.com/docs/manual/core/index-single/
二、隐藏索引(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()
    

    在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0413s