如何在mysql中设置慢查询日志格式_mysql慢查询日志格式

来源:这里教程网 时间:2026-02-28 20:20:57 作者:

在 MySQL 中设置慢查询日志格式,核心是配置相关参数以控制日志输出内容和格式。

开启慢查询日志并设置输出格式

MySQL 慢查询日志用于记录执行时间超过指定阈值的 SQL 语句,便于性能分析。要设置其格式,需调整几个关键参数:

slow_query_log:启用或禁用慢查询日志(设为 ON 开启) long_query_time:定义“慢”的标准,单位为秒(如 1.0 表示超过 1 秒) log_output:设置日志输出方式,支持 FILE 或 TABLE(或两者) slow_query_log_file:指定日志文件路径(当 log_output 包含 FILE 时) log_slow_queries:旧版本兼容参数,新版本建议使用 slow_query_log

若希望将日志写入 mysql.slow_log 表中以便用 SQL 查询,需确保 log_output 包含 TABLE。例如:

SET GLOBAL log_output = 'TABLE';

然后查看日志内容:

SELECT * FROM mysql.slow_log ORDER BY start_time DESC LIMIT 10;

控制日志详细程度

通过以下参数可调整日志记录的信息粒度:

log_queries_not_using_indexes:是否记录未使用索引的查询(即使未超时) log_slow_admin_statements:是否记录慢的管理类语句(如 ALTER TABLE) log_throttle_queries_not_using_indexes:限制未使用索引的日志条目频率,防止日志爆炸

这些设置直接影响日志内容的丰富性与实用性。例如,开启 log_queries_not_using_indexes 可帮助发现潜在性能问题。

慢查询日志格式字段说明

当 log_output 设为 TABLE 时,mysql.slow_log 表包含如下主要字段:

start_time:查询开始时间 user_host:执行用户及来源主机 query_time:SQL 执行耗时 lock_time:锁等待时间 rows_sent:返回行数 rows_examined:扫描行数 sql_text:实际执行的 SQL 语句 db:当前数据库名

这些字段构成了慢查询日志的标准格式,可用于分析性能瓶颈。

配置示例(my.cnf)

在 MySQL 配置文件中添加以下内容:

[mysqld]
slow_query_log = ON
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1.0
log_output = FILE,TABLE
log_queries_not_using_indexes = ON
log_slow_admin_statements = ON

重启服务或动态生效后,MySQL 将按此格式记录慢查询。

基本上就这些。合理设置慢查询日志格式,能显著提升数据库性能调优效率。

相关推荐