索引是提高查詢查詢效率最有效的手段。索引是一種特殊的資料結構,索引以易於遍歷的形式儲存了資料的部分內容(如:乙個特定的字段或一組字段值),索引會按一定規則對儲存值進行排序,而且索引的儲存位置在記憶體中,所在從索引中檢索資料會非常快。如果沒有索引,mongodb必須掃瞄集合中的每乙個文件,這種掃瞄的效率非常低,尤其是在資料量較大時。
建立/重建索引
檢視索引
刪除索引
mongodb全新建立索引使用ensureindex()
方法,對於已存在的索引可以使用reindex()
進行重建。
1.1 建立索引ensureindex()
mongodb建立索引使用ensureindex()
方法。
語法結構
db.collection_name.ensureindex(keys[,options])
如,為集合sites
建立索引:
> db.sites.ensureindex()注意:
1.8
版本之前建立索引使用createindex()
,1.8
版本之後已移除該方法
1.2 重建索引reindex()
db.collection_name.reindex()如,重建集合
sites
的所有索引:
> db.sites.reindex(), "name" : "_id_",
"ns" : "newdb.sites"
}, ,
"name" : "name_1_domain_-1",
"ns" : "newdb.sites"
} ],
"ok" : 1
}
mongodb提供了檢視索引資訊的方法:getindexes()
方法可以用來檢視集合的所有索引,totalindexsize()
檢視集合索引的總大小,db.system.indexes.find()
檢視資料庫中所有索引資訊。
2.1 檢視集合中的索引getindexes()
db.collection_name.getindexes()如,檢視集合
sites
中的索引:
>db.sites.getindexes()[ ,
"name" : "_id_",
"ns" : "newdb.sites"
},, "name" : "name_1_domain_-1",
"ns" : "newdb.sites"
}]
2.2 檢視集合中的索引大小totalindexsize()
db.collection_name.totalindexsize()如,檢視集合
sites
索引大小:
> db.sites.totalindexsize()16352
2.3 檢視資料庫中所有索引db.system.indexes.find()
db.system.indexes.find()如,當前資料庫的所有索引:
> db.system.indexes.find()
不在需要的索引,我們可以將其刪除。刪除索引時,可以刪除集合中的某一索引,可以刪除全部索引。
3.1 刪除指定的索引dropindex()
db.collection_name.dropindex("index-name")如,刪除集合
sites
中名為"name_1_domain_-1"的索引:
> db.sites.dropindex("name_1_domain_-1")
3.3 刪除所有索引dropindexes()
db.collection_name.dropindexes()如,刪除集合
sites
中所有的索引:
> db.sites.dropindexes()
mongodb 索引管理
1 索引提高查詢速度,降低寫入速度,權衡常用的查詢字段,不必在太多列上建索引 2.在mongodb中,索引可以按欄位公升序 降序來建立,便於排序 檢視當前索引狀態 db.collection.getindexes 建立普通的單列索引 db.collection.createinde 1是公升續 1是...
mongoDB 索引使用
一 索引基礎 mongodb的索引幾乎與傳統的關係型資料庫一模一樣,這其中也包括一些基本的優化技巧。下面是建立索引的命令 db.test.ensureindex 可以通過下面的名稱檢視索引是否已經成功建立 db.test.getindexes 刪除索引的命令是 db.test.dropindex 在...
MongoDB學習 索引
一 索引基礎 mongodb的索引幾乎與傳統的關係型資料庫一模一樣,這其中也包括一些基本的優化技巧。下面是建立索引的命令 db.test.ensureindex 可以通過下面的名稱檢視索引是否已經成功建立 db.test.getindexes 刪除索引的命令是 db.test.dropindex 在...