MySQL開啟慢查詢日記log-slow-queries的辦法。本站提示廣大學習愛好者:(MySQL開啟慢查詢日記log-slow-queries的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL開啟慢查詢日記log-slow-queries的辦法正文
一個通俗WEB站點的頁面經常須要查詢N條SQL語句後能力得出頁面成果,當網站拜訪速度慢而前端做了年夜量優化任務今後,數據庫瓶頸的查找也是WEB優化的一個主要部門。
MySQL中供給了一個慢查詢的日記記載功效,可以把查詢SQL語句時光年夜於若干秒的語句寫入慢查詢日記,平常保護中可以經由過程慢查詢日記的記載信息疾速精確地斷定成績地點。
開啟慢查詢功效
log-slow-queries 慢查詢日記文件途徑
long_query_time 跨越若干秒的查詢就寫入日記
翻開my.cnf設置裝備擺設文件,參加以下代碼:
log-slow-queries = /tmp/mysql-slow.log
long_query_time = 2
假如是windows則在my.ini中參加
my.ini
log_slow_queries
long_query_time = 2
保留加入,重啟MySQL便可。
關於long_query_time設置
平日我們設置long_query_time的值為2,表現查詢SQL語句跨越兩秒的就記載,平日2秒就夠了,默許是10秒。但是,關於很多WEB法式來講,2秒的查詢照樣太長了。切實其實在很多站點中,一個SQL語句跨越1秒的履行時光都算慢的了。
mysql5.1.21今後才供給更細粒度的long_query_time設定,之前的版本只能以秒做單元。
檢查日記
[root@lizhong tmp]# tail -f /tmp/mysql_slow.log
Time: 120815 23:22:11
User@Host: root[root] @ localhost []
Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774
SET timestamp=1294388531;
select count(*) from blog;
第一行:履行時光
第二行:履行用戶
第三行(主要):
Query_time SQL履行的時光,越長則越慢
Lock_time 在MySQL辦事器階段(不是在存儲引擎階段)期待表鎖時光
Rows_sent 查詢前往的行數
Rows_examined 查詢檢討的行數
最初
1、日記不克不及解釋一切成績,常識表象,能夠跟鎖表、體系忙碌的偶發性有關,固然,假如某條SQL語句常常查詢慢那根本可以斷定是可以再次優化的。
2、不要開啟log-queries-not-using-indexes沒有索引查詢記載功效,這個功效現實用途不年夜。就是記載SQL查詢的時刻,沒有索引的統統記載。固然索引對查詢的速度有影響,但要看數據量年夜小。由於開啟了這個功效今後,select * from tab如許的查詢也會被記載在日記中,很快日記文件就會被渣滓信息給充斥,從而影響重要的查詢慢日記記載的檢查。
3、MySQL自帶了mysqldumpslow對象用來剖析slow query日記,或許其它對象也能夠,經由過程對象合營可以更好的剖析。