mysql的慢查詢相關問題

裝載於:http://blog.csdn.net/moqiang02/article/details/34116993 **如何在windows下是用mysqldumpslow命令**

1. 再一次點擊mysql安裝文件(默認是沒安裝mysqldumpslow這些腳本的),如圖:

 

點擊next如下圖

 

點擊Developer Components 旁邊的選擇this feature , and all subfeatures will be 

Install(安裝所有子項) 之後一步一步繼續安裝下去,完成之後,你會看到你的mysql安裝目錄下多了一個scripts包,包中就有mysqldumpslow腳本 如何執行這個腳本呢?

這就需要安裝下面的activeperl


2. 安裝 ActivePerl:從http://www.activestate.com/activeperl下載最新版ActivePerl-5.12.1.1201-MSWin32-x86-292674.zip 解壓後點擊Installer.bat文件 一步一步安裝完,配置環境變量(右擊我的電腦–屬性–高級–環境變量–在系統變量部分–雙擊path–在最後添加你perl的安裝路徑。例如;C:\Perl\bin)驗證安裝完整,開始—cmd—perl -v 如果有版本信息提示,說明安裝成功。


3. 運行狗狗腳本,開始—cmd—cd 桌面–perl gougou.pl (這裏假設你的腳本是放在桌面上的,文件名爲gougou.pl,請按實際情況修改)

 

注:如何開啓mysql slow log記錄日記網上一查一大把 本人就不贅述了(百度一下mysql slow query log)

windows下使用MYSQL的mysqldumpslow進行慢日誌分析

1、首先安裝好perl環境。

2、在dos環境中,切換到perl目錄中,例如我的目錄是

dos 命令 cd c:\Perl\bin

3、在此目錄輸入perl mysqldumpslow的路徑\mysqldumpslow.pl+mysqldumpslow命令 +slow.log的路徑+輸出的地方
例如:我的mysqldumpslow目錄爲

slow.log的目錄爲C:\Perl\bin\slow.log
輸出的文件爲time .txt,目錄爲E:\


mysqldumpslow的命令參數列舉如下:

–help    輸出幫助信息

-v           輸出詳細信息 
-d          調試
-s          按照什麼排序,默認是’at’,顯示順序爲倒序
              al: 平均鎖表時間

ar: 平均結果行數
                at: 平均查詢時間
                 c: 次數
                 l: 鎖表時間
                 r: 總結果行數
                 t: 總查詢時間  
 -r          正序排序,即從小到大排序

-t NUM       限制顯示的條數

-a           顯示出數字和字符串,默認數字爲 N 字符串爲 ‘S’
-g PATTERN   過濾字符串,後接正則表達式,如’10$’ 以10爲結尾的條件

例子:

/usr/local/mysql/bin/mysqldumpslow -s t -a -t 3   slow.txt

根據總查詢時間排序,只列出前3條

/usr/local/mysql/bin/mysqldumpslow -r -s c -a -t 3 -g ‘hello’   slow.txt

搜索包括關鍵字 hello的結果,並按照次數正序排序前3條


快速開啓MySQL慢日誌查詢的方法

MySQL慢日誌查詢對於很多剛接觸MySQL數據的新人來說比較陌生,下面就爲您介紹MySQL慢日誌查詢的用法和好處,供您參考。 
mysql有一個功能就是可以log下來運行的比較慢的sql語句,默認是沒有這個log的。
 
Windows下開啓MySQL慢查詢
打開 my.ini ,找到 [mysqld] 在其下面添加 
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

Linux下啓用MySQL慢查詢
MySQL在Linux系統中的配置文件一般是是my.cnf找到[mysqld]下面加上
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2

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查詢。 
-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查詢語句的監控、分析、優化起到非常大的幫助。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章