99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

MongoDB索引簡單使用技巧-創新互聯

先在數據庫上增加一些數據,輸入下面的命令:

成都創新互聯公司主營永仁網站建設的網絡公司,主營網站建設方案,手機APP定制開發,永仁h5重慶小程序開發搭建,永仁網站營銷推廣歡迎永仁等地區企業咨詢

for(var i=1;i<10;i++) db.customers.insert({name:"jordan"+i,country:"American"})
for(var i=1;i<10;i++) db.customers.insert({name:"gaga"+i,country:"American"})
for(var i=1;i<10;i++) db.customers.insert({name:"ham"+i,country:"UK"})
for(var i=1;i<10;i++) db.customers.insert({name:"brown"+i,country:"UK"})
for(var i=1;i<10;i++) db.customers.insert({name:"ramda"+i,country:"Malaysia"})

使用下面的命令查看當前數據庫并不存在索引(_id除外)

db.system.indexes.find()

現在在name字段增加一列索引,索引語法:

db.collection.ensureIndex(keys,options)

keys是一個document,包含要增加索引的字段和索引的排序方向;option是可選參數,控制索引的創建排序方式。具體命令如下:

db.customers.ensureIndex({name:1})
{
   "createdCollectionAutomatically" : false,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}

利用indexes.find()可以查詢到剛剛建立好的索引。如果建立唯一索引可以使用如下命令:

db.customers.ensureIndex({name:1},{unique:true})
{
   "createdCollectionAutomatically" : false,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}

(此文使用唯一索引)

查看數據是否使用索引:

db.customers.find({name:"ramda9"}).explain()
{
   "cursor" : "BtreeCursor name_1",
   "isMultiKey" : false,
   "n" : 1,
   "nscannedObjects" : 1,
   "nscanned" : 1,
"nscannedObjectsAllPlans" : 1,
   "nscannedAllPlans" : 1,
   "scanAndOrder" : false,
   "indexOnly" : false,
   "nYields" : 0,
   "nChunkSkips" : 0,
   "millis" : 0,
   "indexBounds" : {
      "name" : [
         [
            "ramda9",
            "ramda9"
         ]
      ]
   },
   "server" : "localhost.localdomain:27017",
   "filterSet" : false
}

從粗體字的"nscannedObjects"看出查詢過程中掃描的總文檔數是使用了索引。現在再次查詢country字段:

db.customers.find().count()
45

db.customers.find({country:"Malaysia"}).explain()
{
   "cursor" : "BasicCursor",
   "isMultiKey" : false,
   "n" : 9,
   "nscannedObjects" : 45,
   "nscanned" : 45,
   "nscannedObjectsAllPlans" : 45,
   "nscannedAllPlans" : 45,
   "scanAndOrder" : false,
   "indexOnly" : false,
   "nYields" : 0,
   "nChunkSkips" : 0,
   "millis" : 0,
   "server" : "localhost.localdomain:27017",
   "filterSet" : false
}

可以看出這是使用了全表掃描,并沒有使用到索引。

 建立復合索引:

現在為country建立一個索引:

 for(var i=1;i<10;i++) db.customers.insert({name:"lanbo"+i,country:"Malaysia"})

查詢索引情況:

db.customers.find({country:"Malaysia"}).explain()

結果是全表掃描。現在嘗試在country上建立一個普通索引:

db.customers.ensureIndex({country:1})

重新再次執行explain語句:

db.customers.find({country:"Malaysia"}).explain()
{
   "cursor" : "BtreeCursor country_1",
   "isMultiKey" : false,
   "n" : 18,
   "nscannedObjects" : 18,
   "nscanned" : 18,
   "nscannedObjectsAllPlans" : 18,
   "nscannedAllPlans" : 18,
   "scanAndOrder" : false,
   "indexOnly" : false,
   "nYields" : 0,
   "nChunkSkips" : 0,
   "millis" : 0,
   "indexBounds" : {
      "country" : [
         [
            "Malaysia",
            "Malaysia"
         ]
      ]
   },
   "server" : "localhost.localdomain:27017",
   "filterSet" : false
}

使用了索引并且查詢到18條記錄。現在創建一個復合索引:

db.customers.ensureIndex({name:1,coutry:1})

db.customers.find({name:"lanbo2",country:"Malaysia"}).explain()
{
   "cursor" : "BtreeCursor name_1_coutry_1",
   "isMultiKey" : false,
   "n" : 1,
   "nscannedObjects" : 1,
   "nscanned" : 1,
   "nscannedObjectsAllPlans" : 3,
   "nscannedAllPlans" : 3,
   "scanAndOrder" : false,
   "indexOnly" : false,
   "nYields" : 0,
   "nChunkSkips" : 0,
   "millis" : 0,
   "indexBounds" : {
      "name" : [
         [
            "lanbo2",
            "lanbo2"
         ]
      ],
      "coutry" : [
         [
            {
               "$minElement" : 1
            },
            {
               "$maxElement" : 1
            }
         ]
      ]
   },
   "server" : "localhost.localdomain:27017",
   "filterSet" : false
}

此處使用了name與country的復合索引。(要刪除了name的唯一索引才可以,db.customers.dropIndex("name_1"))

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網頁題目:MongoDB索引簡單使用技巧-創新互聯
標題URL:http://www.yijiale78.com/article2/phdoc.html

成都網站建設公司_創新互聯,為您提供營銷型網站建設標簽優化微信公眾號網站設計小程序開發面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設