目录MongoDB 索引1. 开始与准备数据2. 创建索引前3. 创建索引 createIndex4. 创建索引后6.唯一索引与符合索引①唯一索引②复合索引
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。
这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。
索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。
mongo可以通过创建索引来提高查询的速度。
启动mongo并选择目标数据库
mongo
use test
然后准备一组数据(10万条数据,较大的数据量)
for(i=0;i<100000;i++){db.test.insert({name:’test’+i,age:i})}
查询一下name为”test90000″的数据。并使用explain方法来查看查询的性能。
db.test1.find({name:”test90000″}).explain(‘executionStats’)
这里可以看到查询花了53毫秒
给字段name创建索引
db.test1.createIndex({name: 1})
查看索引:
给name创建索引之前,_id字段默认为索引,创建后集合有两个索引,”_id”和”name”。
再次查找该条数据,并查看查询的性能,发现所用时间接近0毫秒。即设定索引后查询性能大大提升了。
db.test1.find({name:”test90000″}).explain(‘executionStats’)
5. 删除索引
db.test1.dropIndex({name:1})
查看之
db.test1.getIndexes()
如图,只剩下了”_id”一个索引。”name”索引已被删除。
db.test1.createIndex({name: 1},)
查看索引
db.test1.getIndexes()
可以看到,unique为true。
设定为唯一索引后,该索引的值不能重复。
(这个特点也可以用于写爬虫时不想要某字段的重复数据时,达到去重的目的。)
如图插入一条name重复的数据时,会产生如下报错:
即插入失败了。
创建多个索引的方式被称为复合索引。
首先删掉刚刚创建的索引name
db.test1.dropIndex({name:1})
然后一次创建name,age两个索引
db.test1.createIndex({‘name’:1,’age’:1})
处理海量数据时,在一定的规则下使用复合索引,可以大幅提升查询的性能.
到此这篇关于mongoDB数据库索引快速入门指南的文章就介绍到这了,更多相关mongoDB索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:MongoDB索引的用法介绍MongoDB索引类型汇总分享MongoDB通配符索引的用法实例深入理解MongoDB的复合索引关于MongoDB索引管理-索引的创建、查看、删除操作详解MongoDB的索引Mongodb索引的优化MongoDB索引使用详解MongoDB教程之索引介绍MongoDB数据库索引用法详解
© 版权声明
文章版权归作者所有,未经允许请勿转载。