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:

mysql 慢sql自動化優化系統

2,結果生成Html
mysql 慢sql自動化優化系統

3,生成報表:
mysql 慢sql自動化優化系統

結果展示:
1,慢sql日誌:
mysql 慢sql自動化優化系統
mysql 慢sql自動化優化系統

2,tapd工單:
mysql 慢sql自動化優化系統
3,報表:
mysql 慢sql自動化優化系統

嘮叨:
1,因爲代碼也比較多,所以只是隨便貼了一點代碼
2,只是展示其中一些輸出結果
3,目前還沒有做成平臺,因爲俺的前端開發還不大會,哈哈!目前先做成這樣子,但是這樣也能有效提高工作效率了
4,在這裏只拋磚引玉,和大家分享一下自己的一些思路,歡迎大家留言,期待大牛的方案和指導,謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章