亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

MongoDB教程之索引介紹

2020-10-29 18:52:00
字體:
供稿:網(wǎng)友

一、索引基礎(chǔ):

    MongoDB的索引幾乎與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫一模一樣,這其中也包括一些基本的優(yōu)化技巧。下面是創(chuàng)建索引的命令:
 

復(fù)制代碼 代碼如下:

    > db.test.ensureIndex({"username":1})
 

    可以通過下面的名稱查看索引是否已經(jīng)成功建立:
 
復(fù)制代碼 代碼如下:

    > db.test.getIndexes()
 

    刪除索引的命令是:
 
復(fù)制代碼 代碼如下:

    > db.test.dropIndex({"username":1})
 

    在MongoDB中,我們同樣可以創(chuàng)建復(fù)合索引,如:
 
復(fù)制代碼 代碼如下:

    -- 數(shù)字1表示username鍵的索引按升序存儲,-1表示age鍵的索引按照降序方式存儲。
    > db.test.ensureIndex({"username":1, "age":-1})
 

    該索引被創(chuàng)建后,基于username和age的查詢將會用到該索引,或者是基于username的查詢也會用到該索引,但是只是基于age的查詢將不會用到該復(fù)合索引。因此可以說,如果想用到復(fù)合索引,必須在查詢條件中包含復(fù)合索引中的前N個索引列。然而如果查詢條件中的鍵值順序和復(fù)合索引中的創(chuàng)建順序不一致的話,MongoDB可以智能的幫助我們調(diào)整該順序,以便使復(fù)合索引可以為查詢所用。如:
 
復(fù)制代碼 代碼如下:

    > db.test.find({"age": 30, "username": "stephen"})
 

    對于上面示例中的查詢條件,MongoDB在檢索之前將會動態(tài)的調(diào)整查詢條件文檔的順序,以使該查詢可以用到剛剛創(chuàng)建的復(fù)合索引。
    我們可以為內(nèi)嵌文檔創(chuàng)建索引,其規(guī)則和普通文檔沒有任何差別,如:
 
復(fù)制代碼 代碼如下:

    > db.test.ensureIndex({"comments.date":1})
 

    對于上面創(chuàng)建的索引,MongoDB都會根據(jù)索引的keyname和索引方向?yàn)樾聞?chuàng)建的索引自動分配一個索引名,下面的命令可以在創(chuàng)建索引時為其指定索引名,如:
 
復(fù)制代碼 代碼如下:

    > db.test.ensureIndex({"username":1},{"name":"testindex"}) 
 

    隨著集合的增長,需要針對查詢中大量的排序做索引。如果沒有對索引的鍵調(diào)用sort,MongoDB需要將所有數(shù)據(jù)提取到內(nèi)存并排序。因此在做無索引排序時,如果數(shù)據(jù)量過大以致無法在內(nèi)存中進(jìn)行排序,此時MongoDB將會報錯。
   
二、唯一索引:
    在缺省情況下創(chuàng)建的索引均不是唯一索引。下面的示例將創(chuàng)建唯一索引,如:
 
復(fù)制代碼 代碼如下:

    > db.test.ensureIndex({"userid":1},{"unique":true})
 

    如果再次插入userid重復(fù)的文檔時,MongoDB將報錯,以提示插入重復(fù)鍵,如:
 
復(fù)制代碼 代碼如下:

    > db.test.insert({"userid":5})
    > db.test.insert({"userid":5})
    E11000 duplicate key error index: test.test.$userid_1  dup key: { : 5.0 }   
 

    如果插入的文檔中不包含userid鍵,那么該文檔中該鍵的值為null,如果多次插入類似的文檔,MongoDB將會報出同樣的錯誤,如:
 
復(fù)制代碼 代碼如下:

    > db.test.insert({"userid1":5})
    > db.test.insert({"userid1":5})
    E11000 duplicate key error index: test.test.$userid_1  dup key: { : null }  
 

    如果在創(chuàng)建唯一索引時已經(jīng)存在了重復(fù)項(xiàng),我們可以通過下面的命令幫助我們在創(chuàng)建唯一索引時消除重復(fù)文檔,僅保留發(fā)現(xiàn)的第一個文檔,如:
    --先刪除剛剛創(chuàng)建的唯一索引。
 
復(fù)制代碼 代碼如下:

    > db.test.dropIndex({"userid":1})
    --插入測試數(shù)據(jù),以保證集合中有重復(fù)鍵存在。
    > db.test.remove()
    > db.test.insert({"userid":5})
    > db.test.insert({"userid":5})   
    --創(chuàng)建唯一索引,并消除重復(fù)數(shù)據(jù)。
    > db.test.ensureIndex({"userid":1},{"unique":true,"dropDups":true})   
    --查詢結(jié)果確認(rèn),重復(fù)的鍵確實(shí)在創(chuàng)建索引時已經(jīng)被刪除。
    > db.test.find()
    { "_id" : ObjectId("4fe823c180144abd15acd52e"), "userid" : 5 }   
   

    我們同樣可以創(chuàng)建復(fù)合唯一索引,即保證復(fù)合鍵值唯一即可。如:
 
復(fù)制代碼 代碼如下:

    > db.test.ensureIndex({"userid":1,"age":1},{"unique":true})   
   

三、使用explain:
    explain是非常有用的工具,會幫助你獲得查詢方面諸多有用的信息。只要對游標(biāo)調(diào)用該方法,就可以得到查詢細(xì)節(jié)。explain會返回一個文檔,而不是游標(biāo)本身。如:
 

復(fù)制代碼 代碼如下:

    > db.test.find().explain()
    {
        "cursor" : "BasicCursor",
        "nscanned" : 1,
        "nscannedObjects" : 1,
        "n" : 1,
        "millis" : 0,
        "nYields" : 0,
        "nChunkSkips" : 0,
        "isMultiKey" : false,
        "indexOnly" : false,
        "indexBounds" : {

        }   
    }
 


    explain會返回查詢使用的索引情況,耗時和掃描文檔數(shù)的統(tǒng)計(jì)信息。
    "cursor":"BasicCursor"表示沒有使用索引。
    "nscanned":1 表示查詢了多少個文檔。
    "n":1 表示返回的文檔數(shù)量。
    "millis":0 表示整個查詢的耗時。
   
四、索引管理:

    system.indexes集合中包含了每個索引的詳細(xì)信息,因此可以通過下面的命令查詢已經(jīng)存在的索引,如:
 

復(fù)制代碼 代碼如下:

    > db.system.indexes.find()
 

    如果在為已有數(shù)據(jù)的文檔創(chuàng)建索引時,可以執(zhí)行下面的命令,以使MongoDB在后臺創(chuàng)建索引,這樣的創(chuàng)建時就不會阻塞其他操作。但是相比而言,以阻塞方式創(chuàng)建索引,會使整個創(chuàng)建過程效率更高,但是在創(chuàng)建時MongoDB將無法接收其他的操作。
 
復(fù)制代碼 代碼如下:

    > db.test.ensureIndex({"username":1},{"background":true})
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
尤物国产精品| 精品无人区卡一卡二卡三乱码免费卡| 日韩黄色免费电影| 国产毛片毛片毛片毛片毛片毛片| 国产一区二区三区不卡在线| 亚洲va韩国va欧美va精品| 日本少妇做爰全过程毛片| 中文一区二区三区四区| 无码人妻丰满熟妇区毛片18| 92看片淫黄大片欧美看国产片| 免费在线看a| 免费在线稳定资源站| 日韩中文字幕亚洲一区二区va在线| 空姐吹箫视频大全| 91蜜桃在线免费视频| 毛片av免费观看| 天堂av网手机版| 欧美乱人伦中文字幕在线| 忘忧草在线日韩www影院| 精品无码人妻一区二区三| 天天骑夜夜操| 国产剧情一区| 91超碰国产精品| 中文字幕第50页| 国产成人短视频在线观看| 亚洲色图38p| 亚洲国产另类久久久精品极度| 黄色在线观看网| 国产呦小j女精品视频| 在线观看国产日韩| 国产亚洲精品一区二区在线观看| 国产成人一区二区三区别| 久久国产人妖系列| 亚洲性av在线| 嫩草影院在线观看未满十八| 国产在线观看不卡一区二区三区| 久久精品亚洲欧美日韩精品中文字幕| 亚洲二区av| 日本高清在线观看wwwww色| 日韩黄色碟片| 亚洲国产一二三精品无码| 制服丝袜亚洲色图| 国模精品娜娜一二三区| 精品无码一区二区三区蜜臀| 午夜视频一区在线观看| 亚洲综合色网站| 9191在线| 国产又粗又大又爽| 中文字幕剧情在线观看| 亚洲最大的免费视频网站| 欧美—级a级欧美特级ar全黄| 国产精品ⅴa在线观看h| 视频二区欧美毛片免费观看| 欧美一区二区大片| 朝桐光一区二区| 亚洲国产网址| eeuss在线播放| 4虎在线播放1区| 91视频免费播放| 久久r热视频| 亚洲区免费影片| xvideos入口| 九色在线视频蝌蚪| ckplayer中文字幕| 久久一二三四区| 熟妇人妻一区二区三区四区| 美女av在线免费看| 亚洲精品国精品久久99热| 都市激情亚洲| 亚洲欧洲三级| a免费在线观看| 中中文字幕av在线| 国产一区二区三区视频在线观看| 星空无限传媒在线| 18av千部影片| 国产精品看片资源| 一级免费黄色录像| 色撸撸在线观看| 婷婷丁香久久五月婷婷| 欧美牲交a欧美牲交aⅴ免费下载| 久久人妻少妇嫩草av无码专区| 欧美在线亚洲综合一区| 91色琪琪电影亚洲精品久久| 婷婷中文字幕一区| 欧美日韩大片免费观看| 国产欧美日韩在线看| 视频一区二区国产| 国产sm主人调教女m视频| 亚洲av无码国产精品久久不卡| 欧美激情综合五月色丁香| 亚洲成人天堂| 欧美—级高清免费播放| 538任你躁在线精品视频网站| 亚洲欧美日韩国产yyy| 精品久久久久成人码免费动漫| 蜜桃久久精品乱码一区二区| 成人影院中文字幕| 日韩高清国产精品| 欧美一级中文字幕| 玖玖综合伊人| 91黄视频在线| 精品电影在线| 精品久久亚洲一级α| 亚洲激情一区二区三区| 欧美亚洲第一页| 一区二区三区四区在线免费观看| 精品美女一区二区三区| gogogo免费视频观看亚洲一| 最新中文字幕一区二区三区| 亚洲一区美女视频在线观看免费| 欧美激情一二区| 136fldh精品导航福利| 久久深夜福利免费观看| 欧美日韩尤物久久| 污视频网站免费在线观看| 国产乡下妇女做爰| 116美女写真午夜一级久久| 国产日本在线视频| 欧美综合天天夜夜久久| 成人黄色短视频在线观看| 欧美在线观看视频一区| 欧美性猛交xxxx乱大交蜜桃| 爱情岛论坛亚洲品质自拍视频网站| 日韩精品一区二区三区久久| 日本1区2区3区视频| 免费在线观看h| 三级ai视频| 欧美一区二区三区在线免费观看| 欧美精品视频www在线观看| 免费的很黄很污的视频网站| 国产精品裸体一区二区三区| 精品国产亚洲一区二区在线观看| 91蝌蚪在线| 色av中文字幕| 1区1区3区4区产品乱码芒果精品| 欧洲亚洲免费视频| 欧美一区二区不卡视频| 久久久久久久美女| 日韩大片一区二区| gogogo影视剧免费观看在线观看| 特级西西444www大精品视频免费看| 国产精品白丝jk黑袜喷水| 亚洲丰满少妇videoshd| 欧美羞羞免费网站| 五月天色一区| 国产美女高潮视频| 国内一区二区在线| 成人av在线网| 国产丝袜一区二区三区免费视频| 久久亚洲精品石原莉奈| 欧美成年人网站| 深夜福利视频一区二区| 蜜乳av一区二区三区| 午夜视频免费在线| 欧亚一区二区三区| 天天插天天色| 日韩欧美美女在线观看| av高清资源| 欧美精品一区在线观看| 国产精品人人爽人人做我的可爱| 久久er热在这里只有精品66| 美女网站视频在线观看| 亚洲免费资源在线播放| 91污在线观看| 成人免费xxxxx在线观看| 精品乱人伦一区二区三区| www.xxx亚洲| 大色综合视频网站在线播放| 亚洲一级片免费观看| 亚洲aⅴ日韩av电影在线观看| 国产乱码精品1区2区3区| 国内精品久久久久久影院8f| 中文字幕在线亚洲| 97人人爽人人澡人人精品| 97国产精品久久| 欧美日韩国产高清视频| 欧美一区二区日韩一区二区| 日韩精品无码一区二区三区| 日韩精品一区二区亚洲av性色| 色综合天天综合给合国产| 综合天堂av久久久久久久| 污网站在线观看视频| 成人性视频网站| 日本1区2区| 欧美极品少妇xxxxⅹ喷水| 亚洲妇熟xx妇色黄| 欧美性xxxx极品hd欧美| 国产真实老熟女无套内射| 国外成人性视频| 99久久精品国产麻豆演员表| 日韩午夜激情电影| 女人18毛片一区二区三区| 另类成人小视频在线| 在线观看欧美一区| 在线观看日本中文字幕| www.玖玖玖| 波多野结衣中文字幕一区| 欧美中文字幕一二三区视频| 神马久久久久久久久久久| 国产精品精品视频一区二区三区| 欧美午夜精品理论片a级大开眼界| 神马久久久久久久久久久| 奇米777国产一区国产二区| 日韩免费看片| 九九九九九九精品任你躁| 久久成人人人人精品欧| 看全色黄大色黄女片18| 精品资源在线| 色aⅴ色av色av偷拍| 亚洲国产中文在线二区三区免| 国产精品久久无码| 欧洲专线二区三区| 精品国产网站在线观看| 国产精品久久久久久久天堂第1集| 一区二区三区中文在线观看| 日韩毛片一二三区| 毛片不卡一区二区| 顶级嫩模精品视频在线看| 奇米777国产一区国产二区| 神马电影网我不卡| 国产三级精品三级在线观看| 大胆av不用播放器在线播放| 中文一区一区三区免费在线观看| 国内爆初菊对白视频| 精品少妇久久久| 国产在线麻豆精品观看| 免费高清在线观看电视| 激情久久免费视频| 亚洲欧美久久婷婷爱综合一区天堂| 蜜臀久久久99精品久久久久久| 日本在线视频免费| 中文字幕亚洲欧洲| 偷拍自拍亚洲色图| 男人插女人下面视频| 97精品人妻一区二区三区蜜桃| 男女在线视频| 男人的天堂免费在线视频| 国产情侣激情自拍| 国产小视频一区| 国产福利视频在线观看| 亚洲最大激情网| 在线视频亚洲自拍| 18禁裸乳无遮挡啪啪无码免费| 国产在线视频二区| 91免费国产视频| 欧美日韩三级在线| 三级av免费看| 牛牛影视久久网| 欧美一区久久| 色婷婷粉嫩av| 中文字幕 日韩有码| 一本一道波多野毛片中文在线| 国产最新精品| 亚洲影音先锋| 狠狠操图片视频| 日本一区二区精品视频| 制服.丝袜.亚洲.中文.综合懂色| 男人的天堂视频在线| 91免费看片在线| 日韩成人小视频| 亚洲小说欧美另类激情| 91国语精品自产拍在线观看性色| 26uuu欧美日本| 亚洲永久精品视频| 五月天中文字幕一区二区| 粉嫩av一区二区三区四区五区| 日本a口亚洲| 东北少妇不带套对白| 成人黄色中文字幕| 久久久久久欧美精品se一二三四| 69久久夜色精品国产7777| 欧美日韩国内| 六月激情综合网| 国产精彩自拍| 久草免费在线视频| 国产一级视频在线播放| 日韩成人一区二区三区在线观看| 国产欧美在线观看视频| 日本熟伦人妇xxxx| 亚洲日韩中文字幕在线播放| 免费男女羞羞的视频网站中文子暮| 国产又粗又猛又爽又黄的视频小说| 影音先锋中文字幕一区| 91精品国产91久久久久久最新毛片| 人人干人人干人人干| 99久久99久久免费精品小说| 日韩五码在线观看| 激情欧美一区二区三区在线观看| 91精品国产福利在线观看| 久久久久久久久久网| 亚洲福利视频二区| 成人高潮片免费视频| 国产精品va在线播放| 无码国产色欲xxxx视频| 国产精品久久久久久久久毛片| 国产在线播放不卡| 亚洲精品一区二区毛豆| 午夜影院在线观看视频| 99久久99久久精品免费看小说.| 日韩在线视频网址| 亚洲国产天堂久久国产91| 一区二区三区中文字幕精品精品| 中文字幕在线2019| 欧美福利网站| 亚洲激情播播| 欧美激情视频免费看| 日日摸夜夜添夜夜添国产精品| 国产婷婷一区二区三区| 日韩亚洲欧美综合| 亚洲毛片欧洲毛片国产一品色| 亚洲黄色在线免费观看| 波多野结衣在线观看一区二区| 欧美高清性xxxxxxx| 男人搞女人网站| 亚洲AV无码精品国产| 国产成人精品免费视| 深夜日韩欧美| 亚洲精品一区二区三区香蕉| 天天做夜夜做人人爱精品| 欧美一级日韩不卡播放免费| 91久久久久久白丝白浆欲热蜜臀| 99久久亚洲精品日本无码| 春暖花开成人亚洲区| 中文日本高清免费| 欧美一级淫片videoshd| 在线观看黄色网| 亚洲天堂av网站| 黄色欧美日韩|