This article describes how to enable the slow query log in MySQL. You can use the slow query log to help determine which database queries take a long time to run.
Slow queries can affect database performance and overall server performance. The slow query log feature in MySQL enables you to log queries that exceed a predefined time limit. This greatly simplifies the task of finding inefficient or time-consuming queries.
To enable the slow query log in MySQL, follow these steps:
mysql -u root -p
Type the MySQL root password.
To enable the slow query log, type the following command at the mysql> prompt:
SET GLOBAL slow_query_log = 'ON';
There are additional options that you can set for the slow query log:
SET GLOBAL long_query_time = X;
By default, the slow query log file is located at /var/lib/mysql/hostname-slow.log. To change the log path or filename, type the following command, replacing path with the path to the file, and filename with the name of the log filename:
SET GLOBAL slow_query_log_file = '/path/filename';
To verify that the slow query log is working correctly, log out of the mysql program, and then log back in. (This reloads the session variables for the mysql program.) Type the following command, replacing X with a value that is greater than the long_query_time setting:
SELECT SLEEP(X);
The slow query log file should contain information about the query.
Continue to monitor the slow query log file to see which queries take a long time to run.
When you are done troubleshooting, disable the slow query log. To do this, run the mysql program again, and then type the following command:
SET GLOBAL slow_query_log = 'OFF';
You should only enable the slow query log for as long as it is necessary to troubleshoot performance issues.
For more information about the MySQL slow query log, please visit https://dev.mysql.com/doc/refman/5.5/en/slow-query-log.html.