Mongodb 学习笔记(二) :索引

  Mongodb 是基于集合创建索引 (Index),索引的做用相似于传统关系型数据库,目的是为了提升查询速度 。 若是没有创建索引, Mongodb  在读取数据时必须扫描集合中的 全部文档记录。 这种全集合扫描效率是很是低的,尤为在处理大数据时,查询可能须要花费几十秒到几分钟的时间,这对基于互联网应用的网站来讲是没法容忍的。 当集合创建索引后,查询将扫描索引内容,而不会去扫描对应的集合。 但在创建索引的同时,是须要增长额外存储开销的;在已经创建索引的状况下,若新 插入了集合文档记录,则会引发索引重排序,这个过程会影响查询速度。 Mongodb 的索 引基于 B-tree 数据结构及对应算法造成。 默认状况下,在创建集合的同时, MongoDB 数据库自动为集合_id 创建惟一索引,可 以免重复插入同一 _id 值的文档记录。算法

  建立单一字段索引:  数据库

     db.student.createIndex({age:1})     age为字段名  1 为升序  -1为降序。数据结构

  建立字段值惟一索引:大数据

      db.student.createIndex({name:"text"},{unique:true})   单字段值的惟一索引,text为文本索引网站

    db.student.createIndex({name:"text",age:1},{unique:true})  多字段值的惟一索引 spa

  建立哈希索引:排序

    db.student.createIndex({_id:"hashed"})索引

  查询集合上的索引:文档

     db.student.getIndexes()get

  删除集合的全部索引:  

    db.student.dropIndexes()

  删除集合的指定索引:

    db.student.dropIndex(index)

  重建集合的全部索引:

    db.student.reIndex()

  查询集合的索引大小:

    db.student.totalIndexSize()