MySQL慢查询处理之mysqldumpslow和mysqlsla
Windows下開啟MySQL慢查詢
MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上
log-slow-queries = F:\MySQL\log\mysqlslowquery.log
long_query_time = 2
Linux下啟用MySQL慢查詢
MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
注意
log-slow-queries = F:\MySQL\log\mysqlslowquery.log為慢查詢日志存放的位置,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數據存放目錄;
long_query_time=2中的2表示查詢超過兩秒才記錄;
在my.cnf或者my.ini中添加log-queries-not-using-indexes參數,表示記錄下沒有使用索引的查詢。
比如:
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
log-queries-not-using-indexes
一、mysqldumpslow
mysqldumpslow是官方提供的perl腳本,所以你也不用費勁巴拉的安裝了,只要有mysql的環境基本就能用:
mysqldumpslow -s c
其中參數(-s c)的意思就是按照各種慢查詢條數排序。不過mysqldumpslow有一個挺不爽的缺點,就是查詢的結果只有一些抽象的SQL,沒有可供實際運行的SQL例子。
mysqldumpslow, mysql官方提供的慢查詢日志分析工具. 輸出圖表如下:
主要功能是, 統計不同慢sql的
出現次數(Count),
執行最長時間(Time),
累計總耗費時間(Time),
等待鎖的時間(Lock),
發送給客戶端的行總數(Rows),
掃描的行總數(Rows),
用戶以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).
二、mysqlsla
mysqlsla是 hackmysql.com推出的一款日志分析工具(該網站還維護了 mysqlreport, mysqlidxchk 等比較實用的mysql工具)
整體來說, 功能非常強大. 數據報表,非常有利于分析慢查詢的原因, 包括執行頻率, 數據量, 查詢消耗等.
安裝方法如下:
tar zxf http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
perl Makefile.PL
make
make install
使用起來很簡單:
/path/to/mysqlsla slow.log
格式說明如下:
總查詢次數 (queries total), 去重后的sql數量 (unique)
輸出報表的內容排序(sorted by)
最重大的慢sql統計信息, 包括平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.
Count, sql的執行次數及占總的slow log數量的百分比.
Time, 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執行時間.
Lock Time, 等待鎖的時間.
95% of Lock , 95%的慢sql等待鎖時間.
Rows sent, 結果行統計數量, 包括平均, 最小, 最大數量.
Rows examined, 掃描的行數量.
Database, 屬于哪個數據庫
Users, 哪個用戶,IP, 占到所有用戶執行的sql百分比
Query abstract, 抽象后的sql語句
Query sample, sql語句
除了以上的輸出, 官方還提供了很多定制化參數, 是一款不可多得的好工具.
總結
以上是生活随笔為你收集整理的MySQL慢查询处理之mysqldumpslow和mysqlsla的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类模板和函数模板
- 下一篇: 虚拟机模拟WIN2008创建域控制器与故