码迷,mamicode.com
首页 > 数据库 > 详细

Mongodb06 - 索引

时间:2017-12-29 19:02:06      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:分析   mon   log   一起   bsp   col   了解   数据   http   

1、在任何的数据库之中,索引都是一种提升数据库检索性能的手段,在MongoDB数据库中依然会存在有两种的索引创建:自动创建、手动创建

2、范例:重新创建一个简单的students集合,在students没有设置任何索引,通过getIndexes()函数观察存在的索引内容;=>  

  db.students.getIndexes();  =>  有一个“_id”列的索引内容

  技术分享图片

3、索引创建:db.集合名称.ensureIndex({列 : 1});

    |- 设置的 1 表示索引将按照升序的方式进行排列,降序是 -1;

  (01)、范例:创建一个索引,在age字段上   =>  db.students.ensureIndex({"age": 1});

      技术分享图片

      此时并没有设置索引的名字,索引的名字是自动命名的。命名格式:“字段名称_索引的排序模式

  (02)、针对于age字段上的索引做一个分析  =>  db.students.find({"age": 19}).explain();

      *注:此时的查询使用了索引的技术,但是下面再来观察一个查询,不使用索引查询。

  (03)、针对于score字段上设置查询,不使用索引 => db.students.find({"score": {"$gt": 60}}).explain();

      *注:此时在score字段上并没有设置索引,当前的索引形式变成了全局扫描的模式。

  (04)、如果年龄和成绩一起查询  => db.students.find({"$or": [{"age": {"$gt": 19}},{"score": 60}}).explain();

      这个时候虽然age字段上存在有索引,但是有一个很明显的问题,由于score没有索引,依然使用全表扫描,

      为了解决此事的问题,可以使用符合索引。

 

Mongodb06 - 索引

标签:分析   mon   log   一起   bsp   col   了解   数据   http   

原文地址:https://www.cnblogs.com/patriot/p/8145772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!