標籤:mongodb tokumx nosql
繼續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學習筆記<六>