MySQL:如何找到最慢的查询

最简单的方法是使用慢查询日志。
要查看是否启用了慢查询日志记录,请输入以下 SQL 语句:

SHOW VARIABLES LIKE 'slow_query_log';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| slow_query_log   | OFF   |
+------------------+-------+

这里的结果显示没有启用日志。
要启用此日志,请在启动 MySQL 服务器时从命令行使用 -slow-query-log 选项,或者在 MySQL 的配置文件中输入该选项( my.cnf 或者 my.ini ,取决于系统) .可以在配置文件中输入以下内容以启用慢查询日志记录:

[mysqld]
slow_query_log

将此行添加到配置文件后,需要重新启动服务器。
根据存储在服务器变量 long_query_time 中的值,慢查询是指那些比它们应该花费更多时间(以秒为单位)的查询。
输入以下 SQL 语句以查看此变量的值:

SHOW VARIABLES LIKE '%long_query_time%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| long_query_time | 10    |
+-----------------+-------+

此处的结果显示将记录超过 10 秒的查询。
如果要更改此变量的值,请使用 SET 命令,如下所示:

SET long_query_time = 5;

这会将 long_query_time 变量设置为五秒。
从 MySQL 4.1 版开始,使用 log_queries_not_using_indexes 来记录不使用索引的查询。

日期:2020-09-17 00:11:08 来源:oir作者:oir