首页 > 代码库 > 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学习笔记<六>