mongoDB索引快速上手

本文介绍了MongoDB中如何通过创建索引来提升查询效率。从创建索引、检查索引性能、删除索引到理解唯一索引和复合索引的使用,详细阐述了索引对数据库性能的影响。通过实例展示了在10万条数据上创建和删除索引的操作,以及索引对查询速度的显著提升。

mongo可以通过创建索引来提高查询的速度

       在这里插入图片描述


1. 开始与准备数据

启动mongo并选择目标数据库

mongo
use test

然后准备一组数据(10万条数据,较大的数据量)

for(i=0;i<100000;i++){db.test.insert({name:'test'+i,age:i})}

在这里插入图片描述


2. 创建索引前

查询一下name为"test90000"的数据。并使用explain方法来查看查询的性能。

db.test1.find({name:"test90000"}).explain('executionStats')

在这里插入图片描述
这里可以看到查询花了53毫秒


3. 创建索引 createIndex

给字段name创建索引

db.test1.createIndex({name: 1})

在这里插入图片描述
查看索引:

在这里插入图片描述
给name创建索引之前,_id字段默认为索引,创建后集合有两个索引,“_id"和"name”。


4. 创建索引后

再次查找该条数据,并查看查询的性能,发现所用时间接近0毫秒。即设定索引后查询性能大大提升了。

db.test1.find({name:"test90000"}).explain('executionStats')

在这里插入图片描述


5. 删除索引

5.1 删除单个索引

db.test1.dropIndex({name:1})

查看之

db.test1.getIndexes()

在这里插入图片描述
如图,只剩下了"_id"一个索引。"name"索引已被删除。

5.2 删除所有索引(除_id外)

如果有多个索引,要删除除_id外的所有索引:

db.test1.dropIndexex()

6.唯一索引与符合索引

①唯一索引

db.test1.createIndex({name: 1},{"unique":true})

在这里插入图片描述
查看索引

db.test1.getIndexes()

在这里插入图片描述
可以看到,unique为true。

设定为唯一索引后,该索引的值不能重复。
(这个特点也可以用于写爬虫时不想要某字段的重复数据时,达到去重的目的。)

如图插入一条name重复的数据时,会产生如下报错:
在这里插入图片描述
即插入失败了。


②复合索引

创建多个索引的方式被称为复合索引。

首先删掉刚刚创建的索引name

db.test1.dropIndex({name:1})

然后一次创建name,age两个索引

db.test1.createIndex({'name':1,'age':1})

在这里插入图片描述
处理海量数据时,在一定的规则下使用复合索引,可以大幅提升查询的性能。具体比较复杂,这里不再详解。


评论 31
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侯小啾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值