1. 程式人生 > >mysql 優化--定位慢查詢

mysql 優化--定位慢查詢

MySQL慢查詢配置

1. 慢查詢有什麼用?

它能記錄下所有執行超過long_query_time時間的SQL語句, 幫你找到執行慢的SQL, 方便我們對這些SQL進行優化.

2. 如何開啟慢查詢?

首先我們先檢視MYSQL伺服器的慢查詢狀態是否開啟.執行如下命令:

show variables like '%quer%';

我們可以看到當前log_slow_queries狀態為OFF, 說明當前並沒有開啟慢查詢.

開啟慢查詢非常簡單, 操作如下:

在[mysqld]中新增如下資訊:


  log-slow-queries="D:/phpstudy/MySQL/log/mysql-slow.log"

  long_query_time = 1

  log-queries-not-using-indexes


  log-slow-queries: 代表MYSQL慢查詢的日誌儲存目錄, 此目錄檔案一定要有寫許可權;

  Windows下需要寫絕對路徑,如:log-slow-queries="C:/Program Files/MySQL/MySQL   Server 5.5/log/mysql-slow.log"

                                                   這裡是:    D:/phpstudy/MySQL/log/mysql-slow.log


 long_query_time: 最長執行時間. (如圖, MSYQL將記錄下所有執行時間超過2條的SQL語句,  此處為測試時間, 時間不應太小最好在5-10秒之內, 當然可以根據自己的標準而定);

 log-queries-not-using-indexes    :沒有使用到索引的查詢也將被記錄在日誌中

   慢查詢會影響mysql的執行速度

  此時mysql下的log檔案下 檔案中會出現一個檔案

如果在mysql.ini中設定了時間就不用看了!

那麼我們再次查詢還量表中的資料之後

sql語句會不會記錄到該檔案中去;因為mysql中的預設記錄查詢語句時間為10s

我們怎麼看呢?

下面我們可以在進入mysql模式下輸入

show variables;

這裡顯示的就是mysql 中的詳細變數具體可以去查詢mysqlk 手冊

這是我們輸入慢查詢變數時間的語句

show variables like 'long_query_time';

如果在mysql.ini中設定了這裡就不用再次設定了

設定查詢時間為1s

 set long_query_time=1;

我們再次查詢語句

此時大於1秒

開啟我們的log 檔案

改語句就記錄了下來