最近在研究小米開源的 sql 優化工具 soar ,主要是為了做二次開發,新增自己的檢測規則。
- 以下為原始碼分析流程圖
[圖片]
- 開啟線上分析檢測主要是測試庫同步線上庫表資訊,有了庫表資訊就有利於索引的分析建議,當然這個如果頻繁的操作檢測可能會佔用線上庫的 connection 連線數,進而影響線上庫的使用效能
- 啟發式規則過濾只需要配置引數,新增啟發式規則也很簡單,原始碼文件中有寫
- explain 資訊對 sql 分析很有用,這個explain可以當一個課題來講,也是對其一知半解,需要開啟 explain=true
- profile 是在事務中執行sql,獲取執行資訊後,回滾sql。其中 profile 資訊可以檢視 sql 執行時長,及執行過程中各個階段的時間消耗,cpu、記憶體佔用等資訊,使用需要開啟 profile=true。
- trace 也是在事務中執行,獲取資訊後回滾事務,獲取到的資訊量太大,比較專業化,就沒有深入研究,需要開啟 trace=true