5.11.5. The Slow Query Log
The slow query log consists of all SQL statements that took more
long_query_time seconds to execute. The
time to acquire the initial table locks is not counted as
execution time. The minimum and default values of
long_query_time are 1 and 10, respectively.
mysqld writes a statement to the slow query
log after it has been executed and after all locks have been
released. Log order may be different from execution order.
To enable the slow query log as of MySQL 5.1.6, start
mysqld with the
--log-slow-queries option, and optionally use
--log-output to specify the log output
destination as described in Section 5.11.1, “Server Log Tables”. Before
5.1.6, enable the slow query log file with the
option. If no
file_name value is
given, the default is the name of the host machine with a suffix
-slow.log. If a filename is given, but not
as an absolute pathname, the server writes the file in the data
The slow query log can be used to find queries that take a long
time to execute and are therefore candidates for optimization.
However, examining a long slow query log can become a difficult
task. To make this easier, you can process the slow query log
using the mysqldumpslow command to summarize
the queries that appear in the log. Use mysqldumpslow
--help to see the options that this command supports.
In MySQL 5.1, slow queries that do not use indexes
are logged as well as those that do. To prevent queries that do
not use indexes from being logged in the slow query log, use the
--log-queries-not-using-indexes option. See
Section 5.2.1, “mysqld Command Options”.
In MySQL 5.1, the
--log-slow-admin-statements server option
enables you to request logging of slow administrative statements
ALTER TABLE to the slow
Queries handled by the query cache are not added to the slow
query log, nor are queries that would not benefit from the
presence of an index because the table has zero rows or one row.