2015年1月27日 星期二

MySQL General Query Log 和 Slow Query Log

  • 紀錄所有執行的 SQL 語句(General Query Log)。
    計錄在檔案
    log-output=FILE
    general-log=1
    general_log_file="/var/log/mysql/general_log.log"
    記錄在資料庫
    選擇紀錄在資料庫時,會紀錄在 mysql.general_log 裡面。
    log-output=TABLE
    general-log=1
  • 紀錄執行太慢的 SQL 語句(Slow Query Log)
    計錄在檔案
    log-output=FILE
    slow-query-log=1
    slow_query_log_file="/var/log/mysql/slow.log"
    long_query_time=3 #執行超過3秒就紀錄
    記錄在資料庫
    選擇紀錄在資料庫時,會紀錄在 mysql.slow_log 裡面。
    log-output=TABLE
    general-log=1
    
  • 若運行中,不方便重新啟動 MySQL,但又需要觀察 Log,可暫時先修改環境變數。
    例如:
    開啟 General Query Log
    SET global log_output = 'table';
    SET global general_log = 1;
    
    關閉 General Query Log
    SET global general_log = 0;

參考:
Selecting General Query and Slow Query Log Output Destinations
http://stackoverflow.com/a/14403905

沒有留言:

張貼留言