日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

和大家分享前段時間一個凌晨的真實案例,這篇文章也是我事后臨時寫出來的,處理事情的過程有點無語,又有點氣憤!

一、事件背景

事情的背景是這樣的:一個朋友今年年初新開了一家公司,自己是公司的老板,不懂啥技術,主要負責公司的戰略規劃和經營管理,但是他們公司的很多事情他都會過問。手下員工30多人,涵蓋技術、產品、運營和推廣,從成立之初,一直在做一款社交類的App。平時,我們一直保持聯系,我有時也會幫他們公司處理下技術問題。

二、事件經過

今天凌晨,我被電話鈴聲吵醒了,一看是這個朋友打來的,說是他們公司數據庫服務器CPU被打滿了,并且一直持續這個狀態,他說拉個群,把他們后端JAVA同事拉進來一起溝通下,讓我幫忙看看是什么問題,盡快處理下。說話語氣很急,聽的出來事態很嚴重,因為目前正在加大力度推廣,周末使用人數也比較多,出現這種問題著實讓人著急。

后面我加了那個朋友拉的微信群,開始了解服務器出現問題的具體情況,下面就是一些處理的經過了。

注:聊天內容已經獲得授權公布。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

他們后端Java把運維發的監控截圖發出來了,咱繼續跟他溝通。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

為啥我說CPU占用高呢?大家看下他們運維發的圖就知道了。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

CPU已經飆升到了400%了,數據庫服務器基本已經卡死。拿到他給我發的SQL后,我跟他們老板要了一份他們的數據庫表結構,在我電腦上執行了下查詢計劃。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

這不看不知道,一看嚇一跳,一個C端頻繁訪問的接口SQL性能極差,Using temporary、Using filesort、Using join buffer、Block Nested Loop全出來了。

我把這個圖發出去了,也結合他們團隊的實際情況,給出了優化的目標建議:SQL中不要出現Using filesort、Block Nested Loop,盡量不要出現Using join buffer和Using temporary,把Using where盡量優化到Using Index級別。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

說是盡量不要出現Using join buffer和Using temporary,把Using where盡量優化到Using Index級別,就是怕他們做不到這點,優先把Using filesort、Block Nested Loop優化掉。但是這貨后面說的話實屬把我震驚到了。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

我看完他的回復,直接有點無語:臥槽,不超過500萬rows效率很高?你這SQL 500萬數據效果很高?更讓我無語的是這貨說MySQL一般一億以上數據量開始優化,這特么不是完全扯淡嗎?他說這話時,我大概就知道這貨的水平了……

后面我就問他說的這些數據的依據是哪里來的。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

這貨說是什么大數據高并發MySQL數據庫壓測出來的,稍微有過壓測經驗的應該都知道,壓測一個很重要的前提就是要明確壓測的環境,最起碼要明確壓測環境服務器的CPU核數和內存,直接來句MySQL一億數據是大數據高并發MySQL數據庫壓測出來的結果,這還是MySQL官方的數據……

不知道是不是因為群里有他們老板的緣故,這貨后面還在狡辯。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

溝通到這里,我特么有種想打人的沖動,生產環境所有業務快被數據庫拖死了,數據庫服務器CPU被干爆了,監控到慢SQL,并且查看這些慢SQL的執行計劃,性能非常低下,SQL里不管是select部分還是where部分大量使用了MySQL自帶的函數,這不慢才怪啊。看這貨處理問題的態度,要是我下面的人,早就讓他卷鋪蓋走人了。

三、處理結果

后續我跟他們老板要了一個代碼只讀權限的賬號,將代碼拉取下來后,好家伙,到處都是這種SQL查詢,要是一兩處還好,把SQL修改并優化下,關聯的業務邏輯調整下,再把功能測試下,接口壓測下,沒啥問題就可以發版上線了。

但是,如果到處都是這種SQL的話,那優化SQL就要花費一定的時間了,甚至是新發布的重大功能邏輯都要重寫。最終,我跟他們老板說的是回滾版本吧,最新的功能還是先下線,把新功能的SQL、緩存、業務邏輯、接口都優化好,壓測沒問題后再重新上線。

生產真實案例:幾條SQL把服務器干崩了,事后還大言不慚!

四、事后總結

無論什么時候,生產環境一旦出現致命問題,第一時間要優先恢復生產環境正常訪問,隨后再認真排查、定位和解決問題,畢竟生產環境一旦出現問題,每一秒流失的都是真金白銀。

搭建技術團隊一定要找靠譜的人,最起碼團隊的核心人員要靠譜,像我朋友團隊的這個技術,在他的認知里,MySQL執行計劃出現Using temporary、Using filesort、Using join buffer、Block Nested Loop,500W rows效率都很高,殊不知他們生產環境實際主表數據才10幾條,要是真達到500W量級就別查詢了,數據庫直接就趴下了。還有這個MySQL一般一億以上開始優化,這個依據我也不知道這貨是從哪里看到的,并且還說了大數據高并發MySQL數據庫壓測出來的,這不純屬扯淡嗎?

更離譜的是我事后悄悄問了他們老板,他的工作年限是多久,據說工作10多年了,是位80后。

頓時讓我想到了一句話:人的認知有幾個層次:不知道自己不知道,知道自己不知道,知道自己知道,不知道自己知道。

最后,大家對這次事件有什么看法,歡迎評論區留言討論。

作者丨冰河

來源丨公眾號:冰河技術(ID:hacker-binghe)

分享到:
標簽:SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定