bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

MongoDB索引簡單使用技巧-創(chuàng)新互聯(lián)

先在數(shù)據(jù)庫上增加一些數(shù)據(jù),輸入下面的命令:

成都創(chuàng)新互聯(lián)公司主營永仁網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),永仁h5重慶小程序開發(fā)搭建,永仁網(wǎng)站營銷推廣歡迎永仁等地區(qū)企業(yè)咨詢

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"})

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

db.system.indexes.find()

現(xiàn)在在name字段增加一列索引,索引語法:

db.collection.ensureIndex(keys,options)

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

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
}

(此文使用唯一索引)

查看數(shù)據(jù)是否使用索引:

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"看出查詢過程中掃描的總文檔數(shù)是使用了索引。現(xiàn)在再次查詢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
}

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

 建立復(fù)合索引:

現(xiàn)在為country建立一個索引:

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

查詢索引情況:

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

結(jié)果是全表掃描。現(xiàn)在嘗試在country上建立一個普通索引:

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

重新再次執(zhí)行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條記錄。現(xiàn)在創(chuàng)建一個復(fù)合索引:

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的復(fù)合索引。(要刪除了name的唯一索引才可以,db.customers.dropIndex("name_1"))

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

網(wǎng)頁題目:MongoDB索引簡單使用技巧-創(chuàng)新互聯(lián)
標(biāo)題URL:http://vcdvsql.cn/article2/phdoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)標(biāo)簽優(yōu)化微信公眾號網(wǎng)站設(shè)計(jì)小程序開發(fā)面包屑導(dǎo)航

廣告

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

外貿(mào)網(wǎng)站建設(shè)