1. 程式人生 > >開啟MYSQL慢查詢日誌,監控有效率問題的SQL

開啟MYSQL慢查詢日誌,監控有效率問題的SQL

  • 操作步驟
    1. 首先使用使用者登入linux客戶端,執行命令 mysql -u mjb -p, mjb是資料庫使用者名稱,系統會提示輸入密碼,輸入密碼回車,登入成功
      開啟MYSQL慢查詢日誌,監控有效率問題的SQL
    2. 輸入命令show variables like 'slow_query_log',
      • 頁面會顯示是否開啟了慢查詢日誌,slow_query_log =ON,代表已經開啟
        開啟MYSQL慢查詢日誌,監控有效率問題的SQL
      • 如果未開啟,則需要執行該命令set global slow_query_log=on;
    3. 通過設定log_queries_not_using_indexes開啟為使用索引的監控
      • 輸入命令show variables like 'log_queries_not_using_indexes';
      • log_queries_not_using_indexes=OFF,代表未開啟,需要執行該命令
      • set global log_queries_not_using_indexes=on;
      • 開啟MYSQL慢查詢日誌,監控有效率問題的SQL
    4. 通過long_query_time設定監控閥值,也就是超過多少秒就記錄,單位是秒,此處設定為0.1也就是100毫秒
      • 輸入命令show variables like 'long_query_time';
      • 開啟MYSQL慢查詢日誌,監控有效率問題的SQL
      • 系統設定的為1秒,如果需要修改為0.1秒,則需要執行如下命令
      • set global long_query_time=0.1;
    5. 通過以上設計,基本上可以開始優化工作了,set global 只是全域性session生效,重啟後失效,如果需要以上配置永久生效,需要在mysql.cnf中配置
      • [mysqld]
        slow_query_log = 1
        log_queries_not_using_indexes =1
        long_query_time = 0.1
        slow_query_log_file = /apps/logs/mysql/slow3306.log
        如果是linux,就通過以下命令或service等其他方式重啟
        啟動:/etc/init.d/mysqld(mysql) start
        停止:/etc/init.d/mysqld(mysql) stop
        重啟:/etc/init.d/mysqld(mysql) restart
        最後檢視慢查詢日誌所在的位置,通過檢視slow_query_log_file
      • 執行命令show variables like 'slow_query_log_file' \G
      • 開啟MYSQL慢查詢日誌,監控有效率問題的SQL
      • 顯示的日誌記錄在/apps/logs/mysql/slow3306.log目錄
      • 測試
      • 開啟MYSQL慢查詢日誌,監控有效率問題的SQL
      • 記錄成功
      • 開啟MYSQL慢查詢日誌,監控有效率問題的SQL
欄位名 含義
Time int型別時間戳 加 時間 180913 10:39:57
[email protected] 執行SQL的主機資訊 mjb[mjb] @ localhost []
Thread_id 執行緒id 5271182
Query_time 執行時間 2.000219
Lock_time 鎖定時間 0.000000
Rows_sent 返回記錄數 1
Rows_examined 掃描行數 0
SET timestamp SQL執行用時 1536806397
select sleep(2) SQL語句 select sleep(2);
  • 設定成功,效能測試完成,可以把監控到的慢SQL日誌檔案進行檢視,看是哪些SQL語句需要進行優化