mysql(slow-query)快速開啟慢日志查詢的方法
mysql有一個功能就是可以log下來運行的比較慢的sql語句,默認是沒有這個log的
www.2cto.com
打開 my.ini ,找到 [mysql] 在其下面添加
long_query_time = 2
log-slow-queries = D:/mysql/logs/slow.log #設置把日志寫在那裡,可以為空,系統會給
一個缺省的文件
#log-slow-queries = /var/youpath/slow.log linux下host_name-slow.log
log-queries-not-using-indexes
long_query_time 是指執行超過多長時間(單位是秒)的sql會被記錄下來,這裡設置的是2秒。
log-slow-queries 設置日志所在位置,可以為空,系統會給一個缺省的文件
host_name-slow.log,生成的日志就在mysql的data目錄下
log-queries-not-using-indexes 就是字面意思,記錄下沒有使用索引的query。
以下是mysqldumpslow常用參數說明,詳細的可應用mysqldumpslow -help查詢。
www.2cto.com
-s,是表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的
記錄數來排序(從大到小),ac、at、al、ar表示相應的倒敘。
-t,是top n的意思,即為返回前面多少條數據。
-g,後邊可以寫一個正則匹配模式,大小寫不敏感。
接下來就是用mysql自帶的慢查詢工具mysqldumpslow分析了(mysql的bin目錄下
),我這裡的日志文件名字是host-slow.log。
列出記錄次數最多的10個sql語句
mysqldumpslow -s c -t 10 host-slow.log
列出返回記錄集最多的10個sql語句
mysqldumpslow -s r -t 10 host-slow.log
按照時間返回前10條裡面含有左連接的sql語句
mysqldumpslow -s t -t 10 -g "left join" host-slow.log
使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對MySQL查
詢語句的監控、分析、優化起到非常大的幫助。