最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一次因mongo查詢不存在字段引發(fā)的事故記錄

 更新時間:2021年01月07日 15:13:16   作者:希希大隊(duì)長  
這篇文章主要給大家介紹了關(guān)于一次因mongo查詢不存在字段引發(fā)的事故記錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

話說今天的一個小小的查詢失誤給了我比較深刻的教訓(xùn),也讓我對mongo有了更深刻的理解,下面我們來說說這個事情的原委:

我們經(jīng)常使用阿里云子賬號在DMS上查詢線上數(shù)據(jù)庫數(shù)據(jù),今天也是平常的一次操作

集合:

XXXX_message<br>數(shù)據(jù)量約 600萬

我執(zhí)行了下面的mongo查詢:

db.XXXX_message.find({"channel_id": "1000000009XXXX700XXXX"}).limit(20);

但是上述語句中的 "channel_id" 字段不存在,真實(shí)字段應(yīng)該是channel(有索引),屬于失誤操作

在執(zhí)行過程中,我發(fā)現(xiàn)查詢時間很久,于是中斷了查詢又重試了兩次,還是很久,最后中斷了查詢,我意識到我想查的字段可能錯了,于是看了下集合索引,使用正確的字段檢索得到結(jié)果

但就在這時候,一場事故也在悄然醞釀,2分鐘后,阿里云監(jiān)控中心打來告警電話,mongo數(shù)據(jù)庫cpu、iops異常升高

起初并沒有意識到是這個查詢導(dǎo)致的,還以為是半小時前發(fā)布的版本可能有問題,于是立即回滾了版本并開始項(xiàng)目檢查

查了許久,并沒有查到可能造成本次數(shù)據(jù)庫異常告警的原因,項(xiàng)目對該庫的依賴的操作的地方非常少。

當(dāng)我們苦苦想不到原因的時候,我們?nèi)ゲ榱讼孪嚓P(guān)慢sql日志,果然一道耗時約1800000ms的慢sql日志引起了我們的注意

這時候我似乎意識到了點(diǎn)什么,我立馬查阿里云控制臺查詢歷史核對了我剛才查詢的時間和數(shù)據(jù)庫cpu、磁盤iops異常升高的時間節(jié)點(diǎn)

完全對上了,該起事故持續(xù)半小時左右,那條沒有被成功中斷的sql也執(zhí)行了半小時左右

這讓我很震驚,一次控制臺查詢居然導(dǎo)致整個數(shù)據(jù)庫出現(xiàn)如此嚴(yán)重的問題,mongo底層沒有考慮過不存在字段查詢問題嗎?

我慢慢平復(fù)心情,仔細(xì)回顧這件事情,我嘗試著從mongo和mysql的底層去理解這個問題

mongo本身是集合型數(shù)據(jù)庫,意味著每個集合文檔都可以有自己獨(dú)立的數(shù)據(jù)結(jié)構(gòu),和mysql等關(guān)系型數(shù)據(jù)庫的很重要的區(qū)別就是它沒有固定的表結(jié)構(gòu),它包容且隨性

當(dāng)在查詢一個不存在的字段的時候,它仍然按照普通查詢檢索數(shù)據(jù),這時候它會全表掃描,也就是說在上述失誤語句中,mongo底層檢索了整個集合的數(shù)據(jù)集,

遍歷了該集合所有的磁盤塊,這才導(dǎo)致磁盤iops升高且cpu升高。

這次經(jīng)歷讓我覺得我有必要記錄下相關(guān)心得,可能對于很多高級技術(shù)人員,這些東西都是很容易理解和規(guī)避的事情,但大多數(shù)人對此可能并沒有深刻認(rèn)識

這次事故讓我對技術(shù)多了一層敬畏,這有助于我在今后的代碼實(shí)踐和操作中更加謹(jǐn)慎和多一層思考,希望大家以此為戒!此文共勉!

到此這篇關(guān)于一次因mongo查詢不存在字段引發(fā)的事故記錄的文章就介紹到這了,更多相關(guān)mongo查詢不存在字段的事故內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot?整合mongoDB并自定義連接池的示例代碼

    SpringBoot?整合mongoDB并自定義連接池的示例代碼

    這篇文章主要介紹了SpringBoot?整合mongoDB并自定義連接池?,整合mongoDB的目的就是想用它給我們提供的mongoTemplate,它可以很容易的操作mongoDB數(shù)據(jù)庫,對整合過程及實(shí)例代碼感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • Mongodb啟動命令參數(shù)中文說明

    Mongodb啟動命令參數(shù)中文說明

    這篇文章主要介紹了Mongodb啟動命令參數(shù)中文說明,本文包括基本配置、主/從參數(shù)、Sharding(分片)選項(xiàng)等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • MongoDB增刪查改操作示例【基于JavaScript Shell】

    MongoDB增刪查改操作示例【基于JavaScript Shell】

    這篇文章主要介紹了MongoDB增刪查改操作,結(jié)合實(shí)例形式分析了MongoDB數(shù)據(jù)庫基于JavaScript Shell的基本增刪查改操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • java操作mongoDB查詢的實(shí)例詳解

    java操作mongoDB查詢的實(shí)例詳解

    這篇文章主要介紹了java操作mongo查詢的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • MongoDB創(chuàng)建和查詢視圖的方式

    MongoDB創(chuàng)建和查詢視圖的方式

    本文整理mongodb的官方文檔,介紹mongodb的視圖創(chuàng)建和查詢,在Mongodb中,允許使用兩種方式來創(chuàng)建視圖,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-12-12
  • MongoDB數(shù)據(jù)更新方法干貨篇

    MongoDB數(shù)據(jù)更新方法干貨篇

    之前給大家分享了MongoDB中數(shù)據(jù)查詢的相關(guān)方法和技巧,那么下面這篇文章主要給大家介紹了MongoDB中數(shù)據(jù)更新方法的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • MongoDB時間戳轉(zhuǎn)日期及日期分組實(shí)例代碼

    MongoDB時間戳轉(zhuǎn)日期及日期分組實(shí)例代碼

    時間戳(timestamp)通常是一個字符序列,唯一地標(biāo)識某一刻的時間,下面這篇文章主要給大家介紹了關(guān)于MongoDB時間戳轉(zhuǎn)日期及日期分組的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 老生常談MongoDB數(shù)據(jù)庫基礎(chǔ)操作

    老生常談MongoDB數(shù)據(jù)庫基礎(chǔ)操作

    下面小編就為大家?guī)硪黄仙U凪ongoDB數(shù)據(jù)庫基礎(chǔ)操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • windows7下使用MongoDB實(shí)現(xiàn)倉儲設(shè)計(jì)

    windows7下使用MongoDB實(shí)現(xiàn)倉儲設(shè)計(jì)

    本文給大家介紹了本人在物聯(lián)網(wǎng)環(huán)境下基于MongoDB實(shí)現(xiàn)的倉儲的配置信息及具體的使用示例,非常的實(shí)用,有需要的小伙伴可以參考下
    2017-09-09
  • 為MongoDB數(shù)據(jù)庫注冊windows服務(wù)

    為MongoDB數(shù)據(jù)庫注冊windows服務(wù)

    這篇文章介紹了為MongoDB數(shù)據(jù)庫注冊windows服務(wù)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論

布拖县| 忻州市| 西昌市| 苍南县| 安泽县| 阳朔县| 藁城市| 莱州市| 广元市| 开远市| 娱乐| 兴安盟| 克东县| 许昌市| 什邡市| 钦州市| 万山特区| 措美县| 察隅县| 石渠县| 延津县| 双城市| 商都县| 宜兰市| 惠东县| 茂名市| 克东县| 屏山县| 婺源县| 两当县| 绥阳县| 泗洪县| 宁武县| 巴东县| 海林市| 故城县| 南江县| 棋牌| 那坡县| 文安县| 徐闻县|