简单介绍
❝MySQL慢查询日志是MySQL提供的一种日志记录,用于记录MySQL中响应时间超过指定阈值的语句。慢查询日志可以记录到文件,也可以记录到数据库表中。默认是不开启慢查询日志记录,一般生产环境不建议开启。开启后,会对MySQL的性能有一定影响。
❞
参数说明
这里仅介绍几个常用的:
❝
slow_query_log
是否开启慢日志查询,默认不开启
slow_query_log_file
慢查询日志记录文件的位置❞
long_query_time
慢查询响应时间阈值,超过此时间值会记录,默认为10,单位为秒。最小可以精确到微妙。调试时,可以把该参数值设置足够小,以便能记录到慢查询日志
操作方法
查看慢查询参数
show variables like 'slow_query%';
show variables like 'long_query_time';
参数设置方法
❝将 slow_query_log 全局变量设置为“ON”状态
❞
set global slow_query_log='ON';
❝设置慢查询日志存放的位置
❞
❝设置查询超过1秒就记录日志
❞
执行一条慢查询SQL语句,查看是否生成慢查询日志
❝日志格式
慢查询日志被记录后,可以根据slow_query_log_file设置的文件,查看相应日志。
写入日志的每个语句都以 # 字符开头。对于每一组慢SQL,第一行记录的是该条 SQL 执行的时刻(如果 log_timestamps 参数为 UTC ,则该时间会显示 UTC 时区时间),第二行记录的是执行该语句的用户和 IP 以及链接 id ,第三行的几个字段解释如下:
● Query_time: duration 语句执行时间,以秒为单位。
● Lock_time: duration 获取锁的时间(以秒为单位)。
● Rows_sent: 发送给 Client 端的行数。
● Rows_examined: 服务器层检查的行数(不计算存储引擎内部的任何处理)。
❞
tail -f /var/lib/mysql/test_slow.log
查看当前有多少慢sql查询的情况
show status like "%queries%";
参考资料
序号 | 文章链接 |
---|---|
1 | https://www.jb51.net/article/206447.htm |