麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > 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
}

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久中文一区 | 欧美精品网址 | 欧美 日韩 国产 成人 | 亚洲国产精品久久久久久久久久 | 电影av在线 | 欧美成人做爰高潮片免费视频 | 国产美女三级做爰 | 亚洲国产精品久久久久久久久 | 美女视频大全网站免费 | 欧美成人国产va精品日本一级 | 国产va在线观看 | 国产午夜精品久久久久久免费视 | 黄网站免费在线看 | 韩国草草影院 | www.17c亚洲蜜桃 | 欧美一区成人 | 蜜桃麻豆视频 | 草草视频免费 | 加勒比综合 | h视频免费在线观看 | 羞羞视频免费视频欧美 | 夜夜夜精品视频 | 欧美精品激情在线 | 国产成人高清在线观看 | 一本视频在线观看 | 国产在线观看免费视频软件 | 国产亚洲精品视频中文字幕 | 国产在线一级片 | 久草最新网址 | 在线看免电影网站 | 99热1| 久久福利小视频 | 久久精品一二三区白丝高潮 | 欧美日韩免费观看视频 | 久久久精品福利 | 亚洲免费视频一区 | 久久第四色| 成人毛片免费看 | 毛片在线播放视频 | 西川av在线一区二区三区 | 亚洲视频高清 |