MySQL:如何启用慢查询日志?

MySQL:如何启用慢查询日志?

您能给我一个如何启用 MySQL 慢查询日志的示例吗?

根据文档

从 MySQL 5.1.29 开始,使用--slow_query_log[={0|1}]启用或禁用慢查询日志,以及可选--slow_query_log_file=文件名指定日志文件名。--log-慢查询选项已被弃用。

那么我该如何使用该选项?我可以把它放进去吗my.cnf?如果能举个例子就更好了。

答案1

正确的。

最好将其放在 my.cnf 文件的 general/global (顶部) 部分。

您需要做两件事:(1)启用它,(2)定义日志文件目标。

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log

希望这可以帮助。

答案2

这里有一些有趣的事情。

MySQL 5.1/5.5 允许您将慢查询日志转换为 MyISAM。

以下是我为客户采取的方法:

步骤 1)将以下行添加到 /etc/my.cnf

log_output=TABLE
slow_query_log
slow_query_log_file=slow-queries.log

步骤2)重新启动mysql(service mysql restart)

此时,表mysql.slow_log存在,但作为存储引擎CSV。

步骤 3)将 mysql.slow_log 转换为 MyISAM 并索引 start_time 字段

SET @old_log_state = @@global.slow_query_log;
SET GLOBAL slow_query_log = 'OFF';
ALTER TABLE mysql.slow_log ENGINE = MyISAM;
ALTER TABLE mysql.slow_log ADD INDEX (start_time);
SET GLOBAL slow_query_log = @old_log_state;

现在您可以对其运行 SELECT 查询。

试一试。

相关内容