MongoDB索引管理 索引的建立 檢視 刪除

2021-08-13 20:05:23 字數 2185 閱讀 2738

索引是提高查詢查詢效率最有效的手段。索引是一種特殊的資料結構,索引以易於遍歷的形式儲存了資料的部分內容(如:乙個特定的字段或一組字段值),索引會按一定規則對儲存值進行排序,而且索引的儲存位置在記憶體中,所在從索引中檢索資料會非常快。如果沒有索引,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 在...