a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > MongoDB > 正文

一文帶你搞明白MongoDB索引常用操作

2024-09-07 00:22:31
字體:
來源:轉載
供稿:網友
       在數據庫學習中,索引是一定要掌握的內容,因此這篇文章就給大家介紹一下關于MongoDB索引的操作,包括創建、查看、刪除等等,有這方面學習需要的朋友可以看看。
 
       索引是提高查詢查詢效率最有效的手段。索引是一種特殊的數據結構,索引以易于遍歷的形式存儲了數據的部分內容(如:一個特定的字段或一組字段值),索引會按一定規則對存儲值進行排序,而且索引的存儲位置在內存中,所在從索引中檢索數據會非???。如果沒有索引,MongoDB必須掃描集合中的每一個文檔,這種掃描的效率非常低,尤其是在數據量較大時。
 
       1. 創建/重建索引
 
       MongoDB全新創建索引使用ensureIndex()方法,對于已存在的索引可以使用reIndex()進行重建。
 
       1.1 創建索引ensureIndex()
 
       MongoDB創建索引使用ensureIndex()方法。
 
       語法結構
 
db.COLLECTION_NAME.ensureIndex(keys[,options])
keys,要建立索引的參數列表。如:{KEY:1},其中key表示字段名,1表示升序排序,也可使用使用數字-1降序。
options,可選參數,表示建立索引的設置??蛇x值如下:
background,Boolean,在后臺建立索引,以便建立索引時不阻止其他數據庫活動。默認值 false。
unique,Boolean,創建唯一索引。默認值 false。
name,String,指定索引的名稱。如果未指定,MongoDB會生成一個索引字段的名稱和排序順序串聯。
dropDups,Boolean,創建唯一索引時,如果出現重復刪除后續出現的相同索引,只保留第一個。
sparse,Boolean,對文檔中不存在的字段數據不啟用索引。默認值是 false。
v,index version,索引的版本號。
weights,document,索引權重值,數值在 1 到 99,999 之間,表示該索引相對于其他索引字段的得分權重。
       如,為集合sites建立索引:
 
> db.sites.ensureIndex({name: 1, domain: -1})
{
 "createdCollectionAutomatically" : false,
 "numIndexesBefore" : 1,
 "numIndexesAfter" : 2,
 "ok" : 1
}
       注意:1.8版本之前創建索引使用createIndex(),1.8版本之后已移除該方法
 
       1.2 重建索引reIndex()
db.COLLECTION_NAME.reIndex()
       如,重建集合sites的所有索引:
 
> db.sites.reIndex()
{
 "nIndexesWas" : 2,
 "nIndexes" : 2,
 "indexes" : [
  {
  "key" : {
 "_id" : 1
  },
  "name" : "_id_",
 "ns" : "newDB.sites"
 },
 {
  "key" : {
 "name" : 1,
 "domain" : -1
  },
  "name" : "name_1_domain_-1",
  "ns" : "newDB.sites"
 }
 ],
 "ok" : 1
}
 
       2. 查看索引
       MongoDB提供了查看索引信息的方法:getIndexes()方法可以用來查看集合的所有索引,totalIndexSize()查看集合索引的總大小,db.system.indexes.find()查看數據庫中所有索引信息。
 
       2.1 查看集合中的索引getIndexes()
 
db.COLLECTION_NAME.getIndexes()
       如,查看集合sites中的索引:
 
>db.sites.getIndexes()
[
 {
 "v" : 1,
 "key" : {
  "_id" : 1
 },
 "name" : "_id_",
 "ns" : "newDB.sites"
 },
 {
 "v" : 1,
 "key" : {
  "name" : 1,
  "domain" : -1
 },
 "name" : "name_1_domain_-1",
 "ns" : "newDB.sites"
 }
]
 
       2.2 查看集合中的索引大小totalIndexSize()
 
db.COLLECTION_NAME.totalIndexSize()
       如,查看集合sites索引大?。?br /> 
> db.sites.totalIndexSize()
16352
       2.3 查看數據庫中所有索引db.system.indexes.find()
 
db.system.indexes.find()
       如,當前數據庫的所有索引:
 
> db.system.indexes.find()
       3. 刪除索引
       不在需要的索引,我們可以將其刪除。刪除索引時,可以刪除集合中的某一索引,可以刪除全部索引。
 
       3.1 刪除指定的索引dropIndex()
 
db.COLLECTION_NAME.dropIndex("INDEX-NAME")
       如,刪除集合sites中名為"name_1_domain_-1"的索引:
 
> db.sites.dropIndex("name_1_domain_-1")
{ "nIndexesWas" : 2, "ok" : 1 }
       3.3 刪除所有索引dropIndexes()
 
db.COLLECTION_NAME.dropIndexes()
       如,刪除集合sites中所有的索引:
 
> db.sites.dropIndexes()
{
 "nIndexesWas" : 1,
 "msg" : "non-_id indexes dropped for collection",
 "ok" : 1
}

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本精品免费观看 | 91日日| 精久视频 | 中文字幕二三区不卡 | 日韩欧美国产一区二区三区 | 一区二区视频网 | 91视频大全| 欧美日韩在线观看视频 | 天天综合天天色 | av手机在线播放 | 日韩 欧美 自拍 | 精品成人 | 亚洲高清视频一区二区 | 精品欧美一区二区三区久久久 | 久久精品免费观看 | 日韩精品无码一区二区三区 | 欧美成人一区二区三区片免费 | 亚洲一级在线观看 | 国产97免费视频 | 狠狠色香婷婷久久亚洲精品 | 日韩一区二区高清 | av直接看| 天天操网| 欧美日韩视频在线播放 | 日韩精品一区二区三区中文在线 | 日韩免费高清视频 | 欧美日韩国产精品 | www.99国产 | 成人av网站在线观看 | 国产羞羞视频在线观看 | 亚洲乱码一区二区 | 国产精品久久久久久久久久免费看 | 成人区一区二区三区 | 国产乱人伦av在线a 久久精品视 | 午夜影院免费 | 一区二区亚洲视频 | www.色综合 | 中文字幕日韩一区 | 天堂视频中文字幕 | 欧美激情自拍偷拍 | 欧美综合网 |