第五节 索引

 

 

作用

增加查询速度

查询的种类很多,与之对应的索引的种类也很多

内容简介

  1. 索引的种类与使用 
  2. 索引的匹配规则
  3. 如何建立合适的索引
  4. 索引建立的情况评估

索引的种类

  1. _id索引   
  2. 单键索引
  3. 多建索引
  4. 符合索引
  5. 过期索引

_id索引

默认建立的索引

查询 findOne()

find && findOne()的区别

两者的用法是一样的,只是返回的不同

find()返回的符合条件的所有集合

findOne() 返回符合条件的第一个文档

在前端中find()返回的是一个数组,取用的时候用数组的形式 // data[i].name

findOne()返回的是一个对象 直接使用 data.name

 

单键索引

最普通的索引 不会自动创建

创建单键所以

增加一条数据并创建索引

db.config_collection.insert({x:1,y:2,z:3})

创建x索引

db.config_collection.createIndex({x:1}) 

查看索引  //一条自动创建 一条自己加的

查询 (增加了索引查询 比以前查询更快)

 

多键索引

复合索引

过期索引

 

  1.   过期索引:是在一段时间过后会被删除的索引
  2. 在索引过期后,响应的数据会被删除
  3. 这适合存储一些在一段时间之后会失效的数据比如用户的登录信息,存储日志 
  4. 建立方法: db.config_collection.createIndex({time:1},{expireAfterSeconds:10})  //多了个参数expireAfterSeconds (秒数)

过期索引的限制

  1. 存储在过期索引字段的值必须是指定的时间类型(不能是时间戳 ,否则不仅可删除)
  2. 如果指定的是ISODate数组,则按照最小的时间进行删除
  3. 过期索引不能是符合索引
  4. 删除时间不是精确 (删除过程是由后台程序60s跑一次,而且删除也需要一些时间,所有存在误差)

 

posted @ 2017-12-26 10:58  胡进东  阅读(143)  评论(0编辑  收藏  举报