mysql 慢sql自動化優化處理
阿新 • • 發佈:2018-12-07
背景: 資料庫的工作中,最常見就是慢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=)