首页 > 代码库 > MongoDB学习笔记<六>

MongoDB学习笔记<六>

继续mongoDB的学习

--索引详解

--索引管理

--空间索引

1.创建简单索引

(1)先准备20万条数据

for(var i = 0;i< 200000;i++){

   db.books.insert("number":i,"name":i+"book")

}

(2)检查一下查询性能

var start = new Date()

db.books.find({"number":123456})

var end = new Date();

end - start

(3)为number创建索引

db.books.ensureIndex({"number":1}) 此处1代表正序,-1代表倒序

2.需要注意的地方

-索引的创建在提升查询性能的同时会影响插入的性能

-对于经常查询少插入的文档可以考虑使用索引

-每个键都建立索引不一定可以提高性能

-在做排序工作时,如果是大数据量也可以考虑索引

3.创建索引时可以同时指定索引的名字

db.books.ensureIndex({"name":1},{name:"bookname"})

4.唯一索引

如何解决集合books不能插入重复的文档

 建立唯一索引:db.books.ensureIndex({"name":1},{unique:true})

5.剔除重复值

如果建立唯一索引之前,已经有重复文档,怎么办?

db.books.ensureIndex({"name":1},{unique:true,dropDups:true})

6.hint

如何强制查询使用指定的索引

db.books.find({"name":"obook"}).hint({"name":1})

指定索引必须是已经创建好了的索引

7.explain

如何详细的查看本次查询使用哪个索引和查询数据的状态信息

db.books.find({"name":"0book"}).explain()

8.索引的创建过程在后台执行

db.books.ensureIndex({"name":"0book"},{bookground:true})

9.删除索引

db.runCommand({dropIndexes:"books",index:"name_1"})精确删除

db.runCommand({dropIndexes:"books",index:"*"})所有都删除




MongoDB学习笔记<六>