MongoDB之索引详解
在mysql中已经学习了索引,并知道索引对于查询速度的提升,mongodb也支持索引,以提升查询速度。
1、步骤一:创建大量数据
在命令行中执行如下代码,向集合中插入10万条文档
- 注意:不要在图形界面中执行,因为软件原因无法插入10万条数据就会中断执行
for(i=0;i<100000;i++){
db.t1.
insert
({
name
:
'test'+i,age:i}) }
2、步骤二:数据查找性能分析
查找姓名为'test10000'的文档:db.t1.find({
name
:
'test10000'
})
使用explain()命令进行查询性能分析:db.t1.find({
name
:
'test10000'
}).explain(
'executionStats'
)
- 其中的executionStats下的executionTimeMillis表示整体查询时间,单位是毫秒
性能分析结果如上图图,由于机器的配置原因这个时间也会不同
3、步骤三:建立索引
创建索引: 1表示升序,-1表示降序
语法:db.集合.ensureIndex({属性:1})
例如,db.t1.ensureIndex({name
:1})
4、步骤四:对索引属性查询
执行上面的同样的查询,并进行查询性能分析
db.t1.find({
name
:
'test10000'
}).explain(
'executionStats'
)
性能分析结果如下图
索引的命令
- 建立唯一索引,实现唯一约束的功能:
db.t1.ensureIndex({
"name"
:1},{
"unique"
:
true
})
- 联合索引,对多个属性建立一个索引,按照find()出现的顺序:
db.t1.ensureIndex({
name
:1,age:1})
- 查看文档所有索引:
db.t1.getIndexes()
- 删除索引:
db.t1.dropIndex(
'索引名称'
)