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

主頁 > 知識(shí)庫 > Mongodb索引的優(yōu)化

Mongodb索引的優(yōu)化

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

MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB索引幾乎和關(guān)系型數(shù)據(jù)庫的索引一樣.MongoDB的查詢優(yōu)化器能夠使用這種數(shù)據(jù)結(jié)構(gòu)來快速的對(duì)集合(collection)中的文檔(collection)進(jìn)行尋找和排序.準(zhǔn)確來說,這些索引是通過B-Tree索引來實(shí)現(xiàn)的。在命令行中,可以通過調(diào)用ensureIndex()函數(shù)來建立索引,該函數(shù)指定一個(gè)到多個(gè)需要索引的字段,下面介紹mongodb索引如何優(yōu)化

一、索引簡(jiǎn)介

例如如下數(shù)據(jù)

db.refactor.insert({"username":"refactor","age":24,"isactive":true})
db.refactor.insert({"username":"refactor","age":30,"isactive":false})
db.refactor.insert({"username":"aaaaa","age":24,"isactive":false})
db.refactor.insert({"username":"aaaaa","age":34,"isactive":true})
db.refactor.insert({"username":"sssssss","age":24,"isactive":true})
db.refactor.insert({"username":"tttttt","age":24,"isactive":true})
db.refactor.insert({"username":"tttttt","age":54,"isactive":true})
db.refactor.insert({"username":"bbbbb","age":24,"isactive":false})
db.refactor.insert({"username":"rrrrr","age":24,"isactive":true})
db.refactor.insert({"username":"rrrrr","age":54,"isactive":false})

要按照username鍵進(jìn)行查找,就可以在此鍵上建立索引,來提高查詢速度.

db.refactor.ensureIndex({"username":1})

要按照username,age鍵進(jìn)行查找,就可以在此鍵上建立索引,來提高查詢速度.

db.refactor.ensureIndex({"age":1,"username":1})

傳遞給ensureIndex的文檔是一組值為1或-1的鍵,1為升序,-1為降序,表示索引的創(chuàng)建方向.若索引只有一個(gè)鍵,則方向無關(guān)緊要.

若是有多個(gè)鍵,就得考慮索引的方向問題了.

二、mongodb自帶的就有監(jiān)控,根據(jù)這些監(jiān)控信息,可以做為優(yōu)化的依據(jù)

1、explain執(zhí)行計(jì)劃

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

幾個(gè)關(guān)鍵的字段說明

cursor:返回游標(biāo)類型(BasicCursor或BtreeCursor)
nscanned:被掃描的文檔數(shù)量
n:返回的文檔數(shù)量
millis:耗時(shí)(毫秒)
indexBounds:所使用的索引

例如

SQL 代碼

>db.order.ensureIndex({"user.uid":1})

>db.order.find({ "status": 1.0, "user.uid": { $gt: 2663199.0 } }).explain() 
{ 
"cursor" : "BtreeCursor user.uid_1", 
"nscanned" : 337800, 
"nscannedObjects" : 337800, 
"n" : 337800, 
"millis" : 1371, 
"nYields" : 0, 
"nChunkSkips" : 0, 
"isMultiKey" : false, 
"indexOnly" : false, 
"indexBounds" : { 
"user.uid" : [ 
[ 
2663199, 
1.7976931348623157e+308 
] 
] 
} 
}

2、優(yōu)化器profile

在MySQL中慢查詢?nèi)罩臼墙?jīng)常作為我們優(yōu)化數(shù)據(jù)庫的依據(jù)那在MongoDB中是否有類似的功能呢?答案是肯定的那就是MongoDBDatabaseProfiler。所以MongoDB不僅有而且還有一些比MySQL的SlowQueryLog更詳細(xì)的信息。
mongodb把要輸出的慢語句,存在于db.system.profile。與mysql的slowlog配置相似,需要進(jìn)行參數(shù)設(shè)置,mongo才會(huì)輸出慢語句到profile。有兩個(gè)參數(shù)來控制profile的輸出
db.setProfilingLevel(level,slowms);

默認(rèn)為0 不輸出 1按第二個(gè)參數(shù)時(shí)間閥值(單位為毫秒)輸出 2全部輸出。通常我們?cè)谡{(diào)優(yōu)的時(shí)候都在測(cè)試環(huán)境打開參數(shù)。在生產(chǎn)環(huán)境下一般不輸出profile。

比如

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

就可以輸出,查詢時(shí)間大于1秒的慢語句。

profile輸出的各項(xiàng)值的含義是

ts:命令執(zhí)行時(shí)間
info:命令的內(nèi)容
query:代表查詢
order.order: 代表查詢的庫與集合
reslen:返回的結(jié)果集大小,byte數(shù)
nscanned:掃描記錄數(shù)量
nquery:后面是查詢條件
nreturned:返回記錄數(shù)及用時(shí)
millis:所花時(shí)間

如果發(fā)現(xiàn)時(shí)間比較長(zhǎng),那么就需要作優(yōu)化。

比如

(1)、nscanned數(shù)很大,或者接近記錄總數(shù),那么可能沒有用到索引查詢。

(2)、reslen很大,有可能返回沒必要的字段。

(3)、nreturned很大,那么有可能查詢的時(shí)候沒有加限制。

三、MongoDB的索引選擇機(jī)制

MongoDB的優(yōu)化程序會(huì)在對(duì)比中選擇更優(yōu)秀的索引。

首先,它會(huì)給查詢做一個(gè)初步的“最佳索引”;

其次,假如這個(gè)最佳索引不存在它會(huì)做嘗試來選出表現(xiàn)最好的索引;

最后,優(yōu)化器還會(huì)記住所有類似查詢的選擇(只到大規(guī)模文件變動(dòng)或者索引上的變動(dòng))。

那么優(yōu)化器是如何定義查詢的“最佳索引”。最佳索引必須包含查詢中所有可以做過濾及需要排序的字段。此外任何用于范圍掃描的字段以及排序字段都必須排在做等值查詢的字段之后。如果存在不同的最佳索引,那么Mongo將隨機(jī)選擇。

四、MongoDB的索引總結(jié)

1. 等值測(cè)試

索引中加入所有需要做等值測(cè)試的字段,任意順序。

2. 排序字段(多排序字段的升/降序問題 )

根據(jù)查詢的順序有序的向索引中添加字段。

3. 范圍過濾

以字段的基數(shù)(Collection中字段的不同值的數(shù)量)從低到高的向索引中添加范圍過濾字段。

4、如果索引中的等值或者范圍查詢字段不能過濾出Collection中90%以上的文檔,那么把它移除索引估計(jì)會(huì)更好一些。

5、索引使得可以通過關(guān)鍵字段獲取數(shù)據(jù),能夠使得快速查詢和更新數(shù)據(jù)。但是,必須注意的是,索引也會(huì)在插入和刪除的時(shí)候增加一些系統(tǒng)的負(fù)擔(dān)。往集合中插入數(shù)據(jù)的時(shí)候,索引的字段必須加入到B-Tree中去,因此,索引適合建立在讀遠(yuǎn)多于寫的數(shù)據(jù)集上,對(duì)于寫入頻繁的集合,在某些情況下,索引反而有副作用。不過大多數(shù)集合都是讀頻繁的集合,所以集合在大多數(shù)情況下是有用的。

6、如果數(shù)據(jù)集合比較小(通常小于4M),使用sort()而不需要建立索引就能夠返回?cái)?shù)據(jù)。在這種情況下,做好聯(lián)合使用limit()和sort()。

關(guān)于Mongodb索引的優(yōu)化就給大家介紹這么多,希望對(duì)大家有所幫助!

您可能感興趣的文章:
  • MongoDB索引使用詳解
  • MongoDB的基礎(chǔ)查詢和索引操作方法總結(jié)
  • MongoDB中唯一索引(Unique)的那些事
  • MongoDB中創(chuàng)建索引需要注意的事項(xiàng)
  • mongodb處理中文索引與查找字符串詳解
  • 深入理解MongoDB的復(fù)合索引
  • MongoDB通配符索引的用法實(shí)例

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mongodb索引的優(yōu)化》,本文關(guān)鍵詞  Mongodb,索引,的,優(yōu)化,Mongodb,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mongodb索引的優(yōu)化》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mongodb索引的優(yōu)化的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久综合久久综合久久综合| 欧美日韩国产一区二区三区地区| 欧美色精品在线视频| 欧美精品一区二区三区蜜桃视频| 亚洲免费在线电影| 精品系列免费在线观看| 在线视频国内一区二区| 欧美激情一区二区三区四区| 日韩av一二三| 欧美在线一区二区三区| 国产精品视频麻豆| 久久99热这里只有精品| 欧美日韩视频在线观看一区二区三区| 国产精品免费视频网站| 国产一区高清在线| 56国语精品自产拍在线观看| 亚洲精品免费在线播放| 成人av在线资源网站| 日韩欧美的一区| 热久久免费视频| 欧美精品色一区二区三区| 亚洲免费在线观看视频| 91小视频免费观看| 国产精品国产三级国产aⅴ原创 | 国产精品嫩草影院av蜜臀| 蜜桃一区二区三区在线| 欧美日韩综合一区| 亚洲人成小说网站色在线| 高清不卡一区二区| 国产性天天综合网| 国产一区二区三区不卡在线观看| 日韩午夜激情视频| 免费观看在线综合| 91精品国产色综合久久不卡电影| 亚洲国产精品天堂| 欧美在线观看一二区| 亚洲免费观看视频| 91麻豆免费看| 亚洲精品乱码久久久久久黑人| 成人黄色av网站在线| 国产精品人妖ts系列视频| 成人一区二区在线观看| 中文字幕国产精品一区二区| 国产91富婆露脸刺激对白| 日本一区二区免费在线观看视频| 国产一区二三区| 日本一区二区成人在线| 国产成人啪午夜精品网站男同| 国产视频在线观看一区二区三区 | 日本成人中文字幕在线视频| 欧美日韩亚洲国产综合| 亚州成人在线电影| 欧美理论电影在线| 日本怡春院一区二区| 日韩欧美亚洲国产另类| 精品一区二区在线免费观看| 久久综合九色综合欧美98| 国产精品99久久久久久宅男| 中文字幕第一页久久| 99久久久久久| 亚洲成av人影院| 日韩视频中午一区| 国产一区二区免费看| 中文字幕电影一区| 在线免费不卡视频| 日韩不卡在线观看日韩不卡视频| 日韩色视频在线观看| 国产精品2024| 自拍av一区二区三区| 欧美系列在线观看| 蜜桃一区二区三区四区| 中文字幕乱码一区二区免费| 91黄色免费看| 奇米888四色在线精品| 国产欧美综合在线| 欧亚一区二区三区| 毛片av一区二区| 国产精品久久久99| 欧美午夜理伦三级在线观看| 另类欧美日韩国产在线| 中文字幕免费观看一区| 欧美日韩五月天| 国产一区二区美女| 亚洲欧美日韩国产手机在线 | 99麻豆久久久国产精品免费| 亚洲资源在线观看| 日韩欧美在线一区二区三区| 岛国精品一区二区| 亚洲福中文字幕伊人影院| 日韩免费视频线观看| 99国产精品视频免费观看| 天堂va蜜桃一区二区三区| 国产亚洲精品7777| 欧美日韩国产另类一区| 国产剧情一区二区| 亚洲综合久久久久| 久久免费的精品国产v∧| 在线看国产日韩| 国产精品自在在线| 一区二区三区中文在线| 精品999在线播放| 欧洲一区在线观看| 国产美女av一区二区三区| 一区二区三区四区高清精品免费观看 | 国产成人精品一区二区三区四区| 亚洲一区二区三区四区五区中文 | 色www精品视频在线观看| 老鸭窝一区二区久久精品| 亚洲欧美视频在线观看视频| 精品国产乱码久久久久久久久 | 色婷婷综合在线| 韩国视频一区二区| 亚洲成人免费看| 国产精品二三区| 欧美精品一区二区三区蜜臀| 8x8x8国产精品| 一本色道**综合亚洲精品蜜桃冫| 国产一区二三区| 日本在线播放一区二区三区| 亚洲欧洲综合另类在线| 久久久av毛片精品| 欧美一区二区三区啪啪| 在线视频一区二区三| 成人性生交大片免费看在线播放| 日本不卡视频在线| 亚洲国产精品久久艾草纯爱| 国产精品精品国产色婷婷| 久久中文字幕电影| 日韩视频一区在线观看| 欧美日韩一区二区三区不卡| 色综合天天性综合| 成人av网站在线观看免费| 国产在线精品一区二区夜色| 日韩黄色在线观看| 亚洲精品视频观看| 亚洲欧美综合另类在线卡通| 久久精品人人做人人综合| 日韩女优视频免费观看| 91精品国产一区二区人妖| 欧美性大战久久久久久久 | 国产中文一区二区三区| 麻豆一区二区三区| 日韩av电影免费观看高清完整版| 一区二区三区国产精华| 综合激情成人伊人| 亚洲欧美综合色| 1024精品合集| 亚洲色图在线播放| 亚洲欧洲日产国码二区| 国产精品家庭影院| 中文字幕一区二区三区蜜月| 国产精品久久久久久久蜜臀| 欧美高清在线视频| 国产精品久久久一本精品 | 精品国产91乱码一区二区三区 | 91色九色蝌蚪| 91麻豆福利精品推荐| 91在线视频免费91| 色综合天天性综合| 在线一区二区三区四区五区 | 91亚洲大成网污www| 色激情天天射综合网| 色伊人久久综合中文字幕| 一本色道久久综合亚洲aⅴ蜜桃| 色一情一伦一子一伦一区| 在线亚洲人成电影网站色www| 91玉足脚交白嫩脚丫在线播放| 色综合色综合色综合| 欧美日韩亚洲综合一区| 91精品午夜视频| 欧美电影免费观看高清完整版在| 精品欧美乱码久久久久久| 久久色视频免费观看| 国产清纯在线一区二区www| 中文字幕一区二区三区乱码在线 | 日韩欧美亚洲一区二区| 久久影院电视剧免费观看| 国产欧美1区2区3区| 综合婷婷亚洲小说| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲成av人在线观看| 精品一二三四区| 高清av一区二区| 91官网在线观看| 日韩欧美美女一区二区三区| 久久久久久一二三区| 成人欧美一区二区三区在线播放| 亚洲视频在线一区| 午夜精品久久久| 激情另类小说区图片区视频区| 丁香婷婷综合色啪| 在线视频一区二区免费| 日韩午夜在线播放| 欧美激情一二三区| 亚洲精品乱码久久久久| 日日骚欧美日韩| 成人永久看片免费视频天堂| 欧美影视一区在线| 欧美xxx久久| 亚洲欧美另类小说视频|