您能给我一个如何启用 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 查询。
试一试。