2018年4月23日 星期一

mysql 記錄 執行過久的SQL

如mysql要查詢執行過久的SQL,可在參數檔my.ini or my.cnf 中的[mysqld]下方加上以下參數

slow_query_log = 1
slow_query_log_file = /var/logs/mysql_log/mysql_slow.log
long_query_time = 5   單位是s
log_queries_not_using_indexes = 1 這可以列出無使用index的SQL

如果要同時列出無使用index 的SQL,這樣LOG檔會有非常多SQL,所以建議這行不加或設定0,真的有需要再開啟

如果log檔放置的路徑非在mysql同層,那就要再設定目錄的權限,LOG才能正常被記錄在檔案之中,請依以下指令設定權限:


# mkdir   /var/logs/mysql_log
# chown mysql.mysql -R /var/logs/mysql_log

上述設定是mysql 5.6版之後的設定方式,之前的版本設定有些許不同,所以要先確認你的mysql版本喔

此外,long_query_time 在mysql 5.6版本之後,可以設定0.x秒 之前版本可都是要1秒以上

沒有留言:

張貼留言