Skip to content

日志

日志类型

日志类型说明用途
错误日志(Error Log)记录服务器启动、运行和停止过程中发生的错误信息诊断问题
查询日志(General Query Log)记录所有客户端连接和执行的 SQL 语句调试和审计
慢查询日志(Slow Query Log)记录执行时间超过指定阈值的 SQL 语句识别性能瓶颈
二进制日志(Binary Log)记录所有更改数据库数据的操作用于数据恢复和主从复制。

慢SQL日志配置

MySQL 的慢查询日志用于记录执行时间超过指定阈值的 SQL 语句。配置方式有以下两种:

临时配置

针对单个会话

在会话关闭后失效

sql
SET @@slow_query_log = 'ON';
SET @@long_query_time = 2; -- 设置阈值为2秒
SET @@log_queries_not_using_indexes = 'ON'; -- 记录未使用索引的查询
SET @@slow_query_log_file = '/var/log/mysql/slow.log'; -- 设置日志文件路径
SET @@log_output = 'FILE'; -- 设置日志输出方式为文件

针对全局配置

在MySQL重启后失效

sql
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2; -- 设置阈值为2秒
SET GLOBAL log_queries_not_using_indexes = 'ON'; -- 记录未使用索引的查询
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log'; -- 设置日志文件路径
SET GLOBAL log_output = 'FILE'; -- 设置日志输出方式为文件

持久化配置

修改 MySQL 配置文件(my.cnf 或 my.ini), 在[mysqld]下添加以下内容:

ini
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
log_output = FILE

然后重启 MySQL 服务以应用更改。

NOTE

配置完成后, 执行的SQL语句如果满足慢查询条件, 会被记录到指定的日志文件中。

Released under the MIT License.