亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MongoDB學習筆記(8)--索引及優化索引

系統 2020 0
MongoDB 提供了多樣性的索引支持,索引信息被保存在system.indexes中,且默認總是為_id創建索引,它的索引使用基本和 MySQL 等關系型數據庫一樣。其實可以這樣說說,索引是凌駕于數據存儲系統之上的另一層系統,所以各種結構迥異的存儲都有相同或相似的索引實現及使用接口并不足為奇。

?

基礎索引?

在字段age上創建索引,1(升序);-1(降序)??

?db.t3.ensureIndex({age:1})??

?db.t3.getIndexes();??

_id是創建表的時候自動創建的索引,此索引是不能 夠刪除的。 ?
當系統已有大量數據時,創建索引就是個非常耗時的活,我們可以在后臺執行,只需指定“backgroud:true”即可。??

?db.t3.ensureIndex({age:1} , {backgroud:true})??

?

文檔索引?

?索引可以任何類型的字段,甚至文檔

?在addr 列上創建索引?

?db.factories.ensureIndex( { addr : 1 } );??

?下面這個查詢將會用到我們剛剛建立的索引?

?db.factories.find( { addr: { city: "Beijing", state: "BJ" } } );??

?但是下面這個查詢將不會用到索引,因為查詢的順序跟索引建立的順序不一樣

?db.factories.find( { addr: { state: "BJ" , city: "Beijing"} } );?

??

組合索引 ?

跟其它數據庫產品一樣,MongoDB 也是有組合索引的,下面我們將在addr.city 和addr.state
上建立組合索引。當創建組合索引時,字段后面的 1 表示升序,-1 表示降序,是用 1 還是

用-1主要是跟排序的時候或指定范圍內查詢 ?的時候有關的。?

db.factories.ensureIndex( { "addr.city" : 1, "addr.state" : 1 } );

// ?下面的查詢都用到了這個索引?

db.factories.find( { "addr.city" : "Beijing", "addr .state" : "BJ" } );?
db.factories.find( { "addr.city" : "Beijing" } );?
db.factories.find().sort( { "addr.city" : 1, "addr.state" : 1 } );?

db.factories.find().sort( { "addr.city" : 1 } )??

?

唯一索引 ?

只需在ensureIndex命令中指定”unique:true”即可創建唯一索引。?

db.t4.ensureIndex({firstname: 1, lastname: 1}, {unique: true});??

?

強制使用索引

?db.t5.find({age:{$lt:30}}).hint({name:1, age:1})

?

刪除索引?

?刪除 t3表中的所有索引?

?db.t3.dropIndexes()??

?刪除 t4表中的 firstname 索引??

?db.t4.dropIndex({firstname: 1})?

?

explain?執行計劃

?MongoDB ?提供了一個 explain ?命令讓我們獲知系統如何處理查詢請求。利用 explain ?命令,我們可以很好地觀察系統如何使用索引來加快檢索,同時可以針對性優化索引。

??db.t5.find({age:{$gt:45}}, {name:1}).explain() ? ? ? ??

{?
? ? ? ? "cursor" : "BtreeCursor age_1",?
? ? ? ? "nscanned" : 0,?
? ? ? ? "nscannedObjects" : 0,?
? ? ? ? "n" : 0,?
? ? ? ? "millis" : 0,?
? ? ? ? "nYields" : 0,?
? ? ? ? "nChunkSkips" : 0,?
? ? ? ? "isMultiKey" : false,?
? ? ? ? "indexOnly" : false,?
? ? ? ? "indexBounds" : {?
? ? ? ? ? ? ? ? "age" : [?
? ? ? ? ? ? ? ? ? ? ? ? [?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 45,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.7976931348623157e+308?
? ? ? ? ? ? ? ? ? ? ? ? ]?
? ? ? ? ? ? ? ? ]?

}

}?

字段說明

cursor: ?返回游標類型(BasicCursor ?或 BtreeCursor)??

nscanned: ?被掃描的文檔數?

n: ?返回的文檔數量??

millis: ?耗時(毫秒)??

indexBounds: ?所使用的索引?

?

MongoDB學習筆記(8)--索引及優化索引


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一区二区三区在线可观看 | 国产美女拍拍拍在线观看 | 一本大道香蕉中文在线高清 | 日本精品高清一区二区2021 | 亚洲精品三区 | 狠狠干夜夜操 | 欧美日韩综合在线视频免费看 | 亚洲最大的成人网 | 超清乱人伦中文视频在线 | 免费国产小视频在线观看 | 尹人在线视频 | 国产一级做a爱片久久毛片a | 狠狠色噜噜狠狠米奇777 | 久久桃花综合 | 国产美女激情 | 国产在线精品一区二区 | 成人 亚洲 | 亚洲日韩在线视频 | 亚洲精品色婷婷在线影院麻豆 | 老司机午夜视频在线观看 | 欧美日韩中文字幕在线视频 | 天天操夜夜爽 | 国产高清国内精品福利色噜噜 | 曰本女人一级毛片看一级毛 | 欧美一级亚洲一级 | 看真人视频一级毛片 | 亚洲国产品综合人成综合网站 | 中文字幕久久精品 | 日韩欧美成末人一区二区三区 | 韩国色三级伦不卡高清在线观看 | 午夜精品久久久久久久爽 | 国产精品自拍亚洲 | 欧美性猛片xxxxⅹ免费 | 国产一区二区三区四区在线观看 | 久久久久久久综合色一本 | 色久综合 | 伊人不卡久久大香线蕉综合影院 | 天天做夜夜做久久做狠狠 | 欧美成人天天综合在线视色 | 色狠狠成人综合色 | 欧美一区二区在线播放 |