共計 1122 個字符,預計需要花費 3 分鐘才能閱讀完成。
MySQL 語句優化輔助工具 DBA 怎么用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
概述
優化 SQL,是 DBA 常見的工作之一。如何高效、快速地優化一條語句,是每個 DBA 經常要面對的一個問題。對于一名 DBA 來說,掌握一門語言配合自己的工作是非常必要的。相對于 shell 的簡單、perl 的飄逸,Python 是一種嚴謹的高級語言。其具備上手快、語法簡單、擴展豐富、跨平臺等多種優點。很多人把它稱為一種“膠水”語言,通過大量豐富的類庫、模塊,可以快速搭建出自己需要的工具。
今天主要分享一下自己寫的一個“MySQL 語句優化輔助工具”,通過這個小工具,可以自動調用命令將上面這些內容一次性推給 DBA,大大加速優化的過程。
下面介紹下這個小工具。
環境
模塊 – MySQLDB
模塊 – sqlparse
Python 版本 = 2.7.3
1、腳本內容
因為腳本內容比較多,所以就截部分了。
2、調用方法
python mysql_tuning.py -p tuning_sql.ini -s 你的 sql
參數說明:
-p 指定配置文件名稱
-s 指定 SQL 語句
3、配置文件
這里分別是 [database] 描述數據庫連接信息,[option]運行配置信息。
4、輸出說明
1) 標題部分
包含運行數據庫的地址信息及數據版本信息。
2) 原始 SQL
用戶執行輸入的 SQL,這部分主要是為了后續對比 SQL 改寫時使用。語句顯示時使用了格式化。
3) 系統級參數
腳本選擇顯示了部分與 SQL 性能相關的參數。這部分是寫死在代碼中的,如需擴展需要修改腳本。
4) 優化器開關
下面是和優化器相關的一些參數,通過調整這些參數可以人為干預優化器行為。
5) 執行計劃
就是調用 explain extended 的輸出結果。如果結果過長,可能出現顯示串行的問題(暫時未解決)。
6) 優化器改寫后的 SQL
通過這里可判斷優化器是否對 SQL 進行了某種優化(例如子查詢的處理)。
7) 統計信息
在 SQL 語句中所有涉及到的表及其索引的統計信息都會在這里顯示出來。
8) 運行狀態信息
在會話級別對比了執行前后的狀態(SHOW STATUS),并將出現變化的部分顯示出來。需要注意的是,因為收集狀態數據是采用 SELECT 方式,會造成個別指標的誤差(例如 Com_select)。
9) PROFILE 詳細信息
調用 SHOW PROFILE 得到的詳細信息。
10) PROFILE 匯總信息
根據 PROFILE 的資源消耗情況,顯示不同階段消耗對比情況(TOP N),直觀顯示 瓶頸 所在。
看完上述內容,你們掌握 MySQL 語句優化輔助工具 DBA 怎么用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!