發(fā)布時(shí)間:2019-04-12 作者:Admin5
基于百度DBA多年的運(yùn)維經(jīng)驗(yàn),并結(jié)合用戶的使用習(xí)慣,百度云推出RDS for MySQL的慢SQL統(tǒng)計(jì)分析功能,便于用戶快速定位數(shù)據(jù)庫的性能問題。
在使用云的過程中,哪些指標(biāo)最重要,是安全、彈性,還是計(jì)算能力?
其實(shí)這些都很關(guān)鍵。除此之外,云最重要的就是數(shù)據(jù)庫了。數(shù)據(jù)庫的性能直接關(guān)系到系統(tǒng)執(zhí)行的效率和穩(wěn)定性,更與業(yè)務(wù)緊密相關(guān)。如果數(shù)據(jù)庫出現(xiàn)性能問題,不僅會影響公司業(yè)務(wù)和口碑,還有可能會造成經(jīng)濟(jì)損失。
今天要說的是數(shù)據(jù)庫中的慢SQL。慢SQL是影響數(shù)據(jù)庫性能很重要的一個(gè)方面。對于海量數(shù)據(jù)而言,劣質(zhì)SQL和優(yōu)質(zhì)SQL之間的速度差別甚至能達(dá)到上萬倍。一般情況下,解決慢SQL對解決數(shù)據(jù)庫性能問題會起到事半功倍的效果。
接下來,我們將從產(chǎn)品功能(包括報(bào)表功能、實(shí)時(shí)診斷功能)和應(yīng)用案例這兩個(gè)方面來解讀慢SQL統(tǒng)計(jì)分析功能有多強(qiáng)大,希望能為您的數(shù)據(jù)庫全面提升性能。
功能一:查看三個(gè)月內(nèi)歷史情況
首先隆重介紹的是,該產(chǎn)品可支持查看最近3個(gè)月(截至當(dāng)天零點(diǎn))按天粒度統(tǒng)計(jì)的慢SQL。
具體操作是
只要點(diǎn)擊圖中的慢SQL圓點(diǎn),就能展示當(dāng)天經(jīng)過優(yōu)化分析模塊處理的“慢SQL統(tǒng)計(jì)”信息。用戶可對執(zhí)行次數(shù)較多或耗時(shí)較長的Top N慢SQL進(jìn)行優(yōu)化,也可以通過“下載明細(xì)”獲取對應(yīng)的完整慢SQL。
這樣做的目的是方便用戶了解每天的慢SQL變化趨勢,也可對歷史慢SQL進(jìn)行分析和優(yōu)化,數(shù)據(jù)一目了然了吧。

功能二:可實(shí)時(shí)診斷
除了能查詢?nèi)齻€(gè)月的歷史慢SQL情況之外,本產(chǎn)品還能夠通過慢SQL實(shí)時(shí)診斷查看當(dāng)天零點(diǎn)至當(dāng)前時(shí)間點(diǎn),按分鐘粒度統(tǒng)計(jì)的慢SQL。
具體操作是
用戶可通過點(diǎn)擊圖上的每個(gè)柱圖,展示該5分鐘內(nèi)經(jīng)過優(yōu)化分析模塊處理的“慢SQL統(tǒng)計(jì)”信息。同時(shí),用戶還可對執(zhí)行次數(shù)較多或耗時(shí)較長的Top N慢SQL進(jìn)行優(yōu)化,也可切換到“慢SQL明細(xì)”查看對應(yīng)的完整慢SQL。
此功能是為了方便用戶對當(dāng)天的慢SQL進(jìn)行實(shí)時(shí)分析,真正實(shí)現(xiàn)了今日事今日畢,快速定位數(shù)據(jù)庫的性能問題。

用案例說明實(shí)時(shí)診斷定位有多快
接下來,我們通過具體案例,來解析慢SQL快速分析定位的強(qiáng)大功能。
在這個(gè)案例中,用戶反饋在頁面點(diǎn)擊“查詢”,過了一段時(shí)間頁面報(bào)響應(yīng)超時(shí),如何分析定位此次查詢的響應(yīng)超時(shí)?
首先,該用戶要定位當(dāng)天的性能問題,故可使用“慢SQL實(shí)時(shí)診斷”功能。如下圖所示:

其次,我們從“慢SQL統(tǒng)計(jì)”信息可看到,用戶請求的這條SQL在數(shù)據(jù)庫中執(zhí)行了194.77秒,而業(yè)務(wù)要求超過30秒即算超時(shí),所以請求還沒返回結(jié)果就報(bào)響應(yīng)超時(shí)了。
第三,這條SQL的本意是統(tǒng)計(jì)20181217這一天每種商品的數(shù)量。全天一共也就幾萬條數(shù)據(jù),MySQL在engine層卻掃描了近2億條,然后經(jīng)過server層過濾,最終只有302條數(shù)據(jù)滿足條件。也就是說,MySQL執(zhí)行這條SQL,做了大量的無用功。至此原因基本就可以定位了。
最后,MySQL會給出優(yōu)化建議(該功能會在后續(xù)推出):去掉create_time字段上的函數(shù),放在“=”右側(cè)進(jìn)行判斷,同時(shí)創(chuàng)建(goods_id,create_time)聯(lián)合索引。該SQL可在秒級別返回結(jié)果。
文章最后總結(jié):功能差異性在哪?
從以上功能和案例中不難看出,慢SQL分為報(bào)表功能和實(shí)施診斷功能,作用有所不同。
報(bào)表功能可查看最近3個(gè)月(截至當(dāng)天零點(diǎn))、按天粒度統(tǒng)計(jì)的慢SQL,適用于用戶了解每天的慢SQL變化趨勢,也可對歷史慢SQL進(jìn)行分析優(yōu)化。
實(shí)時(shí)診斷可通過查看當(dāng)天零點(diǎn)至當(dāng)前時(shí)間點(diǎn)、按分鐘粒度統(tǒng)計(jì)的慢SQL。適用于用戶對當(dāng)天的慢SQL進(jìn)行實(shí)時(shí)分析,以快速定位數(shù)據(jù)庫的性能問題。
慢SQL作為云計(jì)算數(shù)據(jù)庫中最為重要的一部分,正在被越來越多企業(yè)重視。優(yōu)質(zhì)SQL與劣質(zhì)SQL的差異性,一定程度上影響了一個(gè)企業(yè)使用云的效率。百度云憑借著多年技術(shù)的積累,推出RDSfor MySQL幫助企業(yè)統(tǒng)計(jì)分析,快速定位數(shù)據(jù)庫的性能問題,就是希望不斷用新技術(shù)幫助企業(yè)提升業(yè)務(wù)能力,最大程度發(fā)揮云的效果。
RDS 慢MySQL統(tǒng)計(jì)分析功能已經(jīng)上線,按照如下操作步驟即刻體驗(yàn)吧!