校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計劃

MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計劃

熱門標簽:兗州電話外呼營銷系統(tǒng) 智能電銷機器人銷售話術(shù) 徐州ai電銷機器人原理 企業(yè)智能外呼系統(tǒng)價格多少 高德地圖標注商戶位置 福州電銷機器人源代碼 南京400電話怎樣辦理 機器人外呼系統(tǒng)軟件存在問題 沈陽營銷電銷機器人招商

一、索引

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

1.基礎(chǔ)索引

在字段age 上創(chuàng)建索引,1(升序);-1(降序):

db.users.ensureIndex({age:1})

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

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

2.文檔索引

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

db.factories.insert( { name: "wwl", addr: { city: "Beijing", state: "BJ" } } );
//在addr 列上創(chuàng)建索引
db.factories.ensureIndex( { addr : 1 } );
//下面這個查詢將會用到我們剛剛建立的索引
db.factories.find( { addr: { city: "Beijing", state: "BJ" } } );
//但是下面這個查詢將不會用到索引,因為查詢的順序跟索引建立的順序不一樣
db.factories.find( { addr: { state: "BJ" , city: "Beijing"} } );

3. 組合索引

跟其它數(shù)據(jù)庫產(chǎn)品一樣,MongoDB 也是有組合索引的,下面我們將在addr.city 和addr.state上建立組合索引。當創(chuàng)建組合索引時,字段后面的1 表示升序,-1 表示降序,是用1 還是用-1 主要是跟排序的時候或指定范圍內(nèi)查詢 的時候有關(guān)的。

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

4. 唯一索引

只需在ensureIndex 命令中指定”unique:true”即可創(chuàng)建唯一索引。例如,往表t4 中插入2 條記錄:

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

5.強制使用索引

hint 命令可以強制使用某個索引。

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

6.刪除索引

//刪除t3 表中的所有索引
db.t3.dropIndexes()
//刪除t4 表中的firstname 索引
db.t4.dropIndex({firstname: 1})

二、explain執(zhí)行計劃

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

db.t5.ensureIndex({name:1})
 db.t5.ensureIndex({age:1})
 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: 被掃描的文檔數(shù)量

n: 返回的文檔數(shù)量

millis: 耗時(毫秒)

indexBounds: 所使用的索引

三、優(yōu)化器profile

在MySQL 中,慢查詢?nèi)罩臼墙?jīng)常作為我們優(yōu)化數(shù)據(jù)庫的依據(jù),那在MongoDB 中是否有類似的功能呢?答案是肯定的,那就是MongoDB Database Profiler。

1.開啟profiling功能

有兩種方式可以控制 Profiling 的開關(guān)和級別,第一種是直接在啟動參數(shù)里直接進行設(shè)置。啟動MongoDB 時加上–profile=級別 即可。也可以在客戶端調(diào)用db.setProfilingLevel(級別) 命令來實時配置,Profiler 信息保存在system.profile 中。我們可以通過db.getProfilingLevel()命令來獲取當前的Profile 級別,類似如下操作:

db.setProfilingLevel(2);

上面profile 的級別可以取0,1,2 三個值,他們表示的意義如下:

0 – 不開啟

1 – 記錄慢命令 (默認為>100ms)

2 – 記錄所有命令

Profile 記錄在級別1 時會記錄慢命令,那么這個慢的定義是什么?上面我們說到其默認為100ms,當然有默認就有設(shè)置,其設(shè)置方法和級別一樣有兩種,一種是通過添加 –slowms 啟動參數(shù)配置。第二種是調(diào)用db.setProfilingLevel 時加上第二個參數(shù):

db.setProfilingLevel( level , slowms )
db.setProfilingLevel( 1 , 10 );

2.查詢 Profiling 記錄

與MySQL 的慢查詢?nèi)罩静煌琈ongoDB Profile 記錄是直接存在系統(tǒng)db 里的,記錄位置system.profile ,所以,我們只要查詢這個Collection 的記錄就可以獲取到我們的 Profile 記錄了。列出執(zhí)行時間長于某一限度(5ms)的 Profile 記錄:

db.system.profile.find( { millis : { $gt : 5 } } )

MongoDB Shell 還提供了一個比較簡潔的命令show profile,可列出最近5 條執(zhí)行時間超過1ms 的 Profile 記錄。 

四、常用性能優(yōu)化方案

創(chuàng)建索引

限定返回結(jié)果數(shù)

只查詢使用到的字段

采用capped collection

采用Server Side Code Execution

使用Hint,強制使用索引

采用Profiling

五、性能監(jiān)控工具

1. mongosniff

此工具可以從底層監(jiān)控到底有哪些命令發(fā)送給了MongoDB 去執(zhí)行,從中就可以進行分析:以root 身份執(zhí)行:

$./mongosniff --source NET lo

然后其會監(jiān)控位到本地以localhost 監(jiān)聽默認27017 端口的MongoDB 的所有包請求。

2.Mongostat

此工具可以快速的查看某組運行中的MongoDB 實例的統(tǒng)計信息 字段說明:

insert: 每秒插入量

query: 每秒查詢量

update: 每秒更新量

delete: 每秒刪除量

locked: 鎖定量

qr | qw: 客戶端查詢排隊長度(讀|寫)

ar | aw: 活躍客戶端量(讀|寫)

conn: 連接數(shù)

time: 當前時間

它每秒鐘刷新一次狀態(tài)值,提供良好的可讀性,通過這些參數(shù)可以觀察到一個整體的性能情況。

3. db.serverStatus

這個命令是最常用也是最基礎(chǔ)的查看實例運行狀態(tài)的命令之一。

4.db.stats

db.stats 查看數(shù)據(jù)庫狀態(tài)信息。

以上所述是小編給大家介紹的MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計劃的相關(guān)知識,希望對大家有所幫助!

您可能感興趣的文章:
  • MongoDB索引使用詳解
  • MongoDB中唯一索引(Unique)的那些事
  • MongoDB的基礎(chǔ)查詢和索引操作方法總結(jié)
  • MongoDB中創(chuàng)建索引需要注意的事項
  • 深入理解MongoDB的復合索引
  • mongodb處理中文索引與查找字符串詳解
  • MongoDB查詢字段沒有創(chuàng)建索引導致的連接超時異常解案例分享
  • 關(guān)于MongoDB索引管理-索引的創(chuàng)建、查看、刪除操作詳解
  • MongoDB自動刪除過期數(shù)據(jù)的方法(TTL索引)
  • 關(guān)于對MongoDB索引的一些簡單理解

標簽:景德鎮(zhèn) 邯鄲 丹東 吉安 大理 本溪 鶴崗 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標題《MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計劃》,本文關(guān)鍵詞  MongoDB,性能,篇之,創(chuàng)建,索引,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計劃》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計劃的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美精品日日鲁夜夜添| 在线精品亚洲一区二区不卡| 亚洲成在人线免费| 一区二区免费视频| 一区二区高清在线| 亚洲高清不卡在线观看| 亚洲国产精品一区二区www在线| 成人免费小视频| 一区二区三区在线视频播放| 亚洲婷婷综合色高清在线| 自拍偷拍亚洲激情| 亚洲国产中文字幕在线视频综合| 天堂av在线一区| 久久精品国产亚洲高清剧情介绍| 精品一区二区综合| 成人午夜av电影| 欧美综合一区二区| 在线成人av网站| 欧美一区二区高清| 久久精品日韩一区二区三区| 中文一区在线播放| 亚洲高清不卡在线| 国产在线播放一区| 精品久久久久一区| 国产日韩欧美不卡| 一区二区三区欧美日韩| 亚洲尤物视频在线| 亚洲一区二区三区精品在线| 午夜精品久久久久久不卡8050| 久久狠狠亚洲综合| 99国产精品久| 欧美精品高清视频| 国产精品狼人久久影院观看方式| 亚洲一区二区高清| 国产成人免费视频网站高清观看视频| 91老师国产黑色丝袜在线| 欧美精品三级在线观看| 国产精品乱码人人做人人爱 | 亚洲3atv精品一区二区三区| 美女看a上一区| 97精品视频在线观看自产线路二| 884aa四虎影成人精品一区| 国产色综合久久| 琪琪久久久久日韩精品| av在线一区二区| 久久色在线视频| 亚洲va欧美va人人爽午夜| 成人免费电影视频| 精品久久久久久无| 舔着乳尖日韩一区| 91蜜桃免费观看视频| 欧美精品一区二区久久久| 亚洲国产日韩一区二区| 99精品在线观看视频| 久久久国产一区二区三区四区小说 | 日韩欧美美女一区二区三区| 成人欧美一区二区三区在线播放| 久久激情五月婷婷| 欧美私人免费视频| 亚洲人成网站色在线观看| 国产成人综合亚洲网站| 精品久久免费看| 日本麻豆一区二区三区视频| 日本二三区不卡| 国产精品家庭影院| 国产一区二区三区综合| 精品欧美一区二区久久| 丝袜亚洲另类欧美综合| 欧美视频一区二区| 亚洲国产视频一区二区| 欧美性生活久久| 亚洲综合一区二区三区| 91国偷自产一区二区开放时间 | 亚洲国产精品精华液网站| 95精品视频在线| 亚洲视频免费观看| aaa欧美大片| 中日韩av电影| 波多野结衣中文一区| 成人欧美一区二区三区黑人麻豆| 成人精品亚洲人成在线| 国产精品视频免费看| 99免费精品在线| 亚洲精品高清在线观看| 精品视频全国免费看| 日本中文字幕不卡| 精品成人一区二区三区| 成人精品视频.| 一区二区三国产精华液| 欧美日本一区二区在线观看| 日本aⅴ免费视频一区二区三区 | 91精品国产综合久久福利| 五月天一区二区三区| 欧美岛国在线观看| 国产大陆精品国产| 亚洲精品视频在线观看网站| 欧美日韩久久一区| 韩日av一区二区| 亚洲欧美综合网| 欧美日韩亚洲丝袜制服| 久久99国产精品久久| 国产亚洲欧美一级| 欧美伊人久久大香线蕉综合69| 奇米777欧美一区二区| 久久精品人人做人人爽97| 91论坛在线播放| 久久国产精品露脸对白| 中文字幕一区二区三区蜜月| 欧美一区日本一区韩国一区| 成人免费视频网站在线观看| 亚洲高清免费视频| 国产午夜亚洲精品理论片色戒| 色婷婷综合久久久久中文 | 成人一区在线观看| 午夜精品久久一牛影视| 久久久久成人黄色影片| 欧美中文字幕久久| 成人免费视频app| 日韩国产成人精品| 亚洲欧美日韩久久| 久久精品一区二区三区不卡牛牛 | 在线观看精品一区| 国产精品99久久不卡二区| 五月婷婷欧美视频| 亚洲色图欧美在线| 国产欧美精品一区| 91精品国产免费| 欧美性欧美巨大黑白大战| 国产91精品欧美| 国产一区二区在线影院| 天堂一区二区在线| 一区二区三区四区蜜桃| 国产精品久久久久久久久快鸭 | 亚洲成av人片在线| 亚洲私人影院在线观看| 欧美经典一区二区| 久久综合狠狠综合久久综合88| 欧美主播一区二区三区美女| 99久久精品免费观看| 国产成人免费在线视频| 国内一区二区在线| 久久99精品国产.久久久久久| 日日摸夜夜添夜夜添亚洲女人| 亚洲一线二线三线视频| 亚洲私人黄色宅男| 亚洲视频狠狠干| 17c精品麻豆一区二区免费| 国产精品成人一区二区艾草| 国产精品久久久久一区二区三区共| 久久嫩草精品久久久精品| 亚洲精品在线免费播放| 26uuu成人网一区二区三区| 精品国产乱码久久久久久久久| 精品美女被调教视频大全网站| 3d动漫精品啪啪| 日韩欧美一二三区| 欧美三级视频在线观看| 欧美日免费三级在线| 91.xcao| 欧美mv和日韩mv国产网站| 欧美精品一区男女天堂| 欧美激情一区在线观看| 国产精品不卡视频| 亚洲综合另类小说| 亚洲成人av一区二区三区| 免费成人在线视频观看| 精品综合久久久久久8888| 国产不卡视频在线观看| 不卡的电视剧免费网站有什么| 国产成人免费视频网站| 一本色道久久综合精品竹菊| 欧美探花视频资源| 欧美丰满美乳xxx高潮www| 日韩免费在线观看| 国产精品久久综合| 亚洲精品国产无套在线观| 亚洲超丰满肉感bbw| 国内久久婷婷综合| 99久久精品国产精品久久| 麻豆精品在线观看| 国产精品一区二区免费不卡| 成人免费高清视频在线观看| 久久99久久久久| 久久69国产一区二区蜜臀| 国产白丝网站精品污在线入口 | 日本一区二区三区国色天香 | 日韩一卡二卡三卡四卡| 中文字幕+乱码+中文字幕一区| 亚洲在线视频免费观看| 国产酒店精品激情| 在线观看免费视频综合| 日韩精品一区二| 亚洲精品免费电影| 国产一区二区91| 欧日韩精品视频| 国产精品电影一区二区| 蜜臀精品一区二区三区在线观看| av在线一区二区三区| 精品少妇一区二区三区免费观看 | 加勒比av一区二区|