1. 程式人生 > >mysql 慢sql自動化優化處理

mysql 慢sql自動化優化處理

        背景:
        資料庫的工作中,最常見就是慢sql優化了,但是DBA怎麼才能從這種繁雜的工作中抽出身來,比前就是自己去資料庫裡查,或者其他的途徑發現一個慢sql,然後就丟給開發,DBA就像一個後媽一樣在跟在屁股後面去催開發優化,這個方式不但工作效率低下,也影響消耗DBA的時間,DBA應該從這些日常繁雜的事情中抽身出來去對接業務,研究新技術,架構等,更多時間去做一些更加有價值的事情
        解決方案:
        目前公司的主要業務都在放在阿里雲的RDS上,阿里雲提供介面去訪問慢sql日誌
        一,原資料準備
        1,寫一個小程式定時去抽取所有例項的慢sql存放在表中
        2,把所有的sql打上標籤,方便後面的分析
        3,輸出慢sql的執行計劃並存儲在表中
        二,資料分析和慢sql處理流程
        1,能過這些原資料,從sql執行時間,次數,掃描的行數,排序,索引的使用情況等多個維度來分析sql,並輸出郵件結果
        2,把經過處理的慢sql和tapd專案管理系統打通,把每個sql自動分配到相關的開發責任人
        3,輸出優化結果報表,每個專案每週的慢sql優化情況
        三總結:
        1,通過這種方式可以減少DBA的工作量
        2,通過平臺來管理和跟蹤慢sql的優化,會讓整個工作流更加清晰和高效
        3,通過報表讓整個優化工作更加清晰,調動開發積極性,讓得優化工作可以量化

        四,程式碼和結果截圖:
        1,拉取慢sql:
    ![](http://i2.51cto.com/images/blog/201812/07/ad9dde733a9d08def4ec0d64a9b00428.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)