03_mongoDB索引

索引

索引就是用来加速查询的。数据库索引与书籍的索引类似:有了索引就不需要翻遍整本书,数据库则可以直接在索引中查找,使得查找速度能提高几个数量级。在索引中找到条目以后,就可以直接跳转到目标文档的位置。

  • 创建普通索引,使用命令 db.collection.ensureIndex({key:1})
  • 查看关于索引的相关信息,使用命令 db.collection.stats()
  • 查看查询使用索引的情况,使用命令 db.collection.find({key:value}).explain()
  • 删除索引,使用命令 db.collection.dropIndex({key:1})
  • 删除集合,也会将集合中的索引全部删除
  • 创建唯一索引,使用命令 db.collection.ensureIndex({key:1},{unique:true})
  • 查看关于索引的相关信息,使用命令 db.collection.stats()
  • 查看查询使用索引的情况,使用命令 db.collection.find({key:value}).explain()
  • 删除索引,使用命令 db.collection.dropIndex({key:1})
  • 删除集合,也会将集合中的索引全部删除

创建简单索引

    数据准备index.js
for(var i = 0 ; i<200000 ;i++){
    db.books.insert({number:i,name:i+"book"})
}
  • 先检验一下查询性能
var start = new Date()
db.books.find({number:65871})
var end = new Date()
end - start
  • 为number 创建索引
    db.books.ensureIndex({number:1})
  • 再执行第一部的代码可以看出有数量级的性能提升

索引使用需要注意的地方

  1. 创建索引的时候注意1是正序创建索引-1是倒序创建索引
  2. 索引的创建在提高查询性能的同事会影响插入的性能
    对于经常查询少插入的文档可以考虑用索引
  3. 符合索引要注意索引的先后顺序
  4. 每个键全建立索引不一定就能提高性能呢
    索引不是万能的
  5. 在做排序工作的时候如果是超大数据量也可以考虑加上索引
    用来提高排序的性能
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容