索引的目的是为了提高查询速度
1.创建索引
创建索引
db.user.ensureIndex({name:1})//为属性name创建索引
创建唯一索引(如果name有重复的会创建失败)
db.user.ensureIndex({name:1},{unique:1})
查看所有索引
db.user.getIndexes()
查看索引相关情况
db.user.stats()
查看某查询使用索引的情况
db.user.find().explain()
2.使用索引的查询
如何计算查询时间?
这里先设置开启 Profiling 功能
Profilling共三个级别
0为不开启
1为记录慢命令(>100ms)
2为记录所有命令
设置Profilling级别
db.setProfillingLevel(2)//设
查看Profilling级别
db.getProfillingLevel()
查询
db.system.profile.find().pretty()
就会查看到有一项mills就是时间
创建索引的条件下和不创建索引条件下分别测试同一查询在数据不多的情况下差距很小,数据很多是会有很大差异
3.删除索引
删除索引
db.user.dropIndex({name:1})
删除集合也会删除所有索引
db.user.drop()