MySQL日志文件---Slow Log

2025-02-06 11:40:51 619

在 欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


MySQL 中,慢查询日志(Slow Log)是我们优化数据库性能时非常重要的一个工具。它记录了执行时间超过指定阈值的 SQL 查询,帮助我们找出性能瓶颈,进而对查询进行优化。特别是在高负载环境中,慢查询日志能够让我们迅速定位到执行时间较长的查询,采取适当的优化措施,比如调整查询语句、添加索引等。

启用 Slow Log

开启慢查询日志并不复杂,首先需要在 MySQL 的配置文件中进行如下设置:

1. slow_query_log:设置为 ON 来启用慢查询日志。

2. slow_query_log_file:指定慢查询日志的存储路径。

3. long_query_time:定义查询执行时间的阈值,只有当查询执行时间超过此值时才会被记录。

例如,在 MySQL 配置文件中添加如下内容:

[mysqld]slow_query_log = 1slow_query_log_file = /path/to/slow-query.loglong_query_time = 1

这样设置之后,执行时间超过 1 秒的查询就会被记录到指定的日志文件中。请确保根据实际情况选择适合的时间阈值。

特殊设置

除了基本的设置外,MySQL 还提供了一些额外的设置,用于更精细化地记录慢查询日志:

· log_slow_admin_statements:启用后,可以记录管理语句(如 ALTER TABLE、CREATE INDEX 等)。

· log_queries_not_using_indexes:开启后,所有不使用索引的查询都会被记录,无论其执行时间是否超过 long_query_time。

· min_examined_row_limit:设置记录的最小行数。低于该行数的查询不会被记录。一般情况下,建议将该值设置为 0。

解析 Slow Log 内容

慢查询日志的每条记录中包含了执行时间、锁定时间、发送行数、检查行数等信息。以下是慢查询日志中常见的字段:

· Query_time:查询的执行时间,单位为秒。

· Lock_time:获取锁的时间,单位为秒。

· Rows_sent:发送给客户端的行数。

· Rows_examined:MySQL 在执行查询时检查的行数。

MySQL 8.0.14 开始,慢查询日志输出增加了一些额外的字段,能够提供更多的细节信息,如下所示:

· Thread_id:语句执行的线程 ID。

· Errno:执行查询时的错误号。

· Killed:如果查询被终止,则会显示错误号指示的原因,正常终止则为 0。

· Start:查询开始执行的时间。

· End:查询执行完成的时间。

通过这些信息,我们可以更加精确地分析慢查询,找到执行时间长的原因,并进行针对性的优化。


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: