快速開(kāi)啟MySQL慢日志查詢的方法
MySQL慢日志查詢對(duì)于很多剛接觸MySQL數(shù)據(jù)的新人來(lái)說(shuō)比較陌生,下面就為您介紹MySQL慢日志查詢的用法和好處,供您參考。
mysql有一個(gè)功能就是可以log下來(lái)運(yùn)行的比較慢的sql語(yǔ)句,默認(rèn)是沒(méi)有這個(gè)log的
打開(kāi) my.ini ,找到 [mysql] 在其下面添加
long_query_time = 2
log-slow-queries = D:/mysql/logs/slow.log #設(shè)置把日志寫在那里,可以為空,系統(tǒng)會(huì)給一個(gè)缺省的文件
#log-slow-queries = /var/youpath/slow.log linux下host_name-slow.log
log-queries-not-using-indexes
long_query_time 是指執(zhí)行超過(guò)多長(zhǎng)時(shí)間(單位是秒)的sql會(huì)被記錄下來(lái),這里設(shè)置的是2秒。
log-slow-queries 設(shè)置日志所在位置,可以為空,系統(tǒng)會(huì)給一個(gè)缺省的文件host_name-slow.log,生成的日志就在mysql的data目錄下
log-queries-not-using-indexes 就是字面意思,記錄下沒(méi)有使用索引的query。
以下是mysqldumpslow常用參數(shù)說(shuō)明,詳細(xì)的可應(yīng)用mysqldumpslow -help查詢。
-s,是表示按照何種方式排序,c、t、l、r分別是按照記錄次數(shù)、時(shí)間、查詢時(shí)間、返回的記錄數(shù)來(lái)排序(從大到小),ac、at、al、ar表示相應(yīng)的倒敘。
-t,是top n的意思,即為返回前面多少條數(shù)據(jù)。
-g,后邊可以寫一個(gè)正則匹配模式,大小寫不敏感。
接下來(lái)就是用mysql自帶的慢查詢工具mysqldumpslow分析了(mysql的bin目錄下
),我這里的日志文件名字是host-slow.log。
列出記錄次數(shù)最多的10個(gè)sql語(yǔ)句
mysqldumpslow -s c -t 10 host-slow.log
列出返回記錄集最多的10個(gè)sql語(yǔ)句
mysqldumpslow -s r -t 10 host-slow.log
按照時(shí)間返回前10條里面含有左連接的sql語(yǔ)句
mysqldumpslow -s t -t 10 -g "left join" host-slow.log
使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語(yǔ)句,對(duì)MySQL查詢語(yǔ)句的監(jiān)控、分析、優(yōu)化起到非常大的幫助。
【編輯推薦】