環境: ubuntu14.04 mysql5.7
當查詢超過一定時間沒有返回結果的時候,纔會記錄慢查詢日誌
慢查詢日誌可以找到執行效率緩慢的sql語句,爲數據庫優化做提供幫助
慢查詢日誌默認不開啓也不必一直開啓,需要進行採樣分析時手動開啓
相關參數
slow-querg-log=on/off -- 是否開啓慢查詢日誌 slow_query_log_file=filename 指定慢查詢日誌保存路徑及文件名,默認存放/usr/local/mysql/data/hostname-slow.log long_query_time=2 -- 指定2秒後未返回結果的的查詢語句屬於慢查詢 long-queries-not-using-indexes -- 記錄所有沒有使用到索引的查詢語句 min_examined_row_limit=1000 -- 記錄那些由於查找了多餘1000次而引發的慢查詢 log-slow-admin-statements -- 記錄那些慢的OPTIMIZE TABLE,ANAKYZE TABLE和ALTER TABLE語句 log-slow-slave-statements -- 記錄由slave所產生的慢查詢
一、啓動
-參數中寫入my.cnf文件中,需重啓
-不重啓修改慢查詢配置
SET global.slow_query_log=1 開啓慢查詢日誌 SET global.long_query_time=3 3秒後未返回結果的的查詢語句屬於慢查詢 其他命令可以通過以下命令查閱 > show variables like '%slow%';
二、慢查詢日誌分析工具
1.mysqldumpslow
mysql自帶分析工具,不宜看出,只做簡單統計
2.mysqlsla
backmysql.com 出品的分析工具
·下載
官網下載或在系統提示符下下載
# wget http://backmysql.com/scripts/mysqlsla-2.03.tar.gz
·解壓
# tar zxvf mysqlsla-2.03.tar.gz mysqlsla-2.03/ mysqlsla-2.03/Changes mysqlsla-2.03/INSTALL mysqlsla-2.03/README mysqlsla-2.03/Makefile.PL mysqlsla-2.03/bin/ mysqlsla-2.03/bin/mysqlsla mysqlsla-2.03/META.yml mysqlsla-2.03/lib/ mysqlsla-2.03/lib/mysqlsla.pm mysqlsla-2.03/MANIFEST # cd mysqlsla-2.03/ //進入安裝目錄//
·執行perl腳本檢查包依賴關係
# perl Makefile.PL //配置//
·編譯 安裝
# make # make install
使用方法
# mysqlsla -lt slow nengjian-slow.log Report for slow logs: nengjian-slow.log 2 queries total, 1 unique Sorted by 't_sum' Grand Totals: Time 7 s, Lock 0 s, Rows sent 2, Rows Examined 0 ______________________________________________________________________ 001 Count : 2 (100.00%) Time : 7.001213 s total, 3.500606 s avg, 3.000447 s to 4.000766 s max (100.00%) Lock Time (s) : 0 total, 0 avg, 0 to 0 max (0.00%) Rows sent : 1 avg, 1 to 1 max (100.00%) Rows examined : 0 avg, 0 to 0 max (0.00%) Database : Users : root@localhost : 100.00% (2) of query, 100.00% (2) of all users Query abstract: SET timestamp=N; SELECT sleep(N); Query sample: SET timestamp=1464159700; select sleep(3);
3.percona-toolkit (未)
依賴包
percona-toolkit
perl-IO-Socket-SSL
perl-Net-libIDN
perl-Net-SSLesy
三、刪除慢查詢日誌
慢查詢日誌會不斷的增長。因此只在做採樣分析這樣的特別工作時纔開啓,其他時候則是關閉的,無用的慢查詢日誌要及時刪除。
1.關閉慢查詢日誌
註釋掉my.cnf 配置文件中關於慢查詢日誌的參數
2.刪除日誌文件
# rm -f /usr/local/mysql/data/hostname-slow.log