亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MongoDB創(chuàng)建一個(gè)索引而性能提升1000倍示例代碼

 更新時(shí)間:2019年01月11日 09:34:57   作者:東山絮柳仔  
這篇文章主要給大家介紹了關(guān)于如何在MongoDB中創(chuàng)建一個(gè)索引而性能提升1000倍的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

MongoDB 創(chuàng)建索引的語法

1.為普通字段添加索引,并且為索引命名

db.集合名.createIndex( {"字段名": 1 },{"name":'idx_字段名'})

說明: (1)索引命名規(guī)范:idx_<構(gòu)成索引的字段名>。如果字段名字過長,可采用字段縮寫。

(2)字段值后面的 1 代表升序;如是 -1 代表 降序。

2.為內(nèi)嵌字段添加索引

db.集合名.createIndex({"字段名.內(nèi)嵌字段名":1},{"name":'idx_字段名_內(nèi)嵌字段名'})

3.通過后臺(tái)創(chuàng)建索引

db.集合名.createIndex({"字段名":1},{"name":'idx_字段名',background:true})

4:組合索引

db.集合名.createIndex({"字段名1":-1,"字段名2":1},{"name":'idx_字段名1_字段名2',background:true})

5.設(shè)置TTL 索引

db.集合名.createIndex( { "字段名": 1 },{ "name":'idx_字段名',expireAfterSeconds: 定義的時(shí)間,background:true} )

說明 :expireAfterSeconds為過期時(shí)間(單位秒)

MongoDB創(chuàng)建索引性能提升1000倍

上面我們介紹了MongoDB的常見索引的創(chuàng)建語法。部分同學(xué)還想看看MongoDB的威力到底有多大,所以,在這兒追加一個(gè)例子,感受一下索引的性能。

通過在某一字段上創(chuàng)建索引,從優(yōu)化前的執(zhí)行15.15S到優(yōu)化后降至0.013S,性能提升了1000多倍。

此為實(shí)際生產(chǎn)中的一個(gè)真實(shí)案例,我們有一個(gè)集合QQStatements,其數(shù)據(jù)量為2604W,如下圖所示。

系統(tǒng)需要查詢此表最近的變動(dòng)情況,即需要抓取新增數(shù)據(jù)量和修改的數(shù)據(jù)量。

查詢語句如下:

db.QQStatements.find({
 $or:
 [
  {Rec_CreateTime:{$gt: ISODate("2019-01-07 16")}}
  ,{Rec_ModifyTime:{$gt: ISODate("2019-01-07 16")}}
  ]
 
} )

但此查詢語句不理想,有時(shí)耗時(shí)25S,多次執(zhí)行有緩存后也要15S左右,如下圖:

查看此表,發(fā)現(xiàn)Rec_CreateTime字段建有索引,單獨(dú)執(zhí)行符合Rec_CreateTime 條件的語句,很快 0.1 S 內(nèi)就執(zhí)行完成。

而Rec_ModifyTime字段沒有索引,單獨(dú)執(zhí)行符合Rec_ModifyTime條件的語句較慢,需要15S左右。

到這兒,就可以判讀出問題是缺失索引,和開發(fā)同學(xué)確認(rèn)后,此場(chǎng)景時(shí)常用,此字段需要添加索引。

執(zhí)行添加索引的命令:

db.QQStatements.createIndex({"Rec_ModifyTime":1},{"name":'idx_Rec_ModifyTime',background:true})

Rec_ModifyTime字段添加索引后,整個(gè)語句執(zhí)行降至0.013S(20S-->0.02S )

從上面可以看出在MongoDB數(shù)據(jù)庫中索引很有必要,性能可以優(yōu)化數(shù)百倍。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

  • MongoDB數(shù)據(jù)庫的安裝步驟

    MongoDB數(shù)據(jù)庫的安裝步驟

    MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。本文簡單介紹下MongoDB數(shù)據(jù)庫的安裝
    2021-06-06
  • 阿里云服務(wù)器安裝mongodb的方法

    阿里云服務(wù)器安裝mongodb的方法

    這篇文章主要介紹了阿里云服務(wù)器安裝mongodb的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • MongoDB 常用命令總結(jié)

    MongoDB 常用命令總結(jié)

    Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。Mongo還可以解決海量數(shù)據(jù)的查詢效率,當(dāng)數(shù)據(jù)量達(dá)到50GB以上時(shí),Mongo數(shù)據(jù)庫訪問速度是MySQL10 倍以上
    2015-05-05
  • Mongodb數(shù)據(jù)庫的備份與恢復(fù)操作實(shí)例

    Mongodb數(shù)據(jù)庫的備份與恢復(fù)操作實(shí)例

    這篇文章主要介紹了Mongodb數(shù)據(jù)庫的備份與恢復(fù)操作實(shí)例,本文講解使用命令在控制臺(tái)執(zhí)行實(shí)現(xiàn)Mongodb的備份與恢復(fù)操作,需要的朋友可以參考下
    2015-01-01
  • 基于MongoDB數(shù)據(jù)庫的數(shù)據(jù)類型和$type操作符詳解

    基于MongoDB數(shù)據(jù)庫的數(shù)據(jù)類型和$type操作符詳解

    下面小編就為大家?guī)硪黄贛ongoDB數(shù)據(jù)庫的數(shù)據(jù)類型和$type操作符詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • MongoDB查詢與游標(biāo)之分布式文件存儲(chǔ)

    MongoDB查詢與游標(biāo)之分布式文件存儲(chǔ)

    這篇文章主要介紹了MongoDB的查詢與游標(biāo),查詢就是返回集合中文檔的一個(gè)子集,子集的范圍從0個(gè)文檔到整個(gè)集合;游標(biāo)的客戶端實(shí)現(xiàn)通常能夠在很大程度上對(duì)查詢的最終輸出進(jìn)行控制;感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • MongoDB的啟動(dòng)方法詳細(xì)總結(jié)

    MongoDB的啟動(dòng)方法詳細(xì)總結(jié)

    MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于MongoDB啟動(dòng)方法的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • MongoDB用Mongoose得到的對(duì)象不能增加屬性完美解決方法(兩種)

    MongoDB用Mongoose得到的對(duì)象不能增加屬性完美解決方法(兩種)

    本文給大家分享兩種解決方案解決MongoDB用Mongoose得到的對(duì)象不能增加屬性問題,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-11-11
  • 最新評(píng)論