索引:以提升查询速度
测试:插入10万条数据到数据库中
> for(i=0;i<100000;i++){db.t1.insert({name:'test'+i,age:i})}
WriteResult({ "nInserted" : 1 })
> db.t1.find({name:"test10000"})
>db.t1.find({name:'test10000'}).explain('executionStats')
建立索引之后对比:
语法:db.集合.ensureIndex({属性:1}),1表示升序, -1表示降序
具体操作:db.t1.ensureIndex({name:1})
db.t1.find({name:'test10000'}).explain('executionStats')
- 在默认情况下创建的索引均不是唯一索引。
- 创建唯一索引:
db.t1.ensureIndex({"name":1},{"unique":true})
- 创建唯一索引并消除重复:
db.t1.ensureIndex({"name":1},{"unique":true,"dropDups":true})
- 建立联合索引(什么时候需要联合索引):
db.t1.ensureIndex({name:1,age:1})
- 查看当前集合的所有索引:
db.t1.getIndexes()
- 删除索引:
db.t1.dropIndex('索引名称')