MySQL中慢查询日志用来记录MySQL中执行时间超过规定阈值的sql语句。
因为慢查询日志要对sql进行判断和记录,会降低MySQL的性能。
如果不需要调优的话,能不开启就不要开启。
MySQL默认情况下,慢查询日志是关闭的。
1、slow_query_log
是否开启慢查询日志,开启设置为 on ,关闭为 off
2、long_query_time
超时阈值,当执行时间大于long_query_time的时候,将记录保存到慢查询日志中。单位为 秒 s
3、log_output
日志存储方式,table为存储到数据库表中,file为存储到文件中。
相较于文件,记录到数据库表更加耗费时间。因为记录到文件只需要顺序写就ok了,而记录到数据库表是随机写。
一般还是选择记录到文件中。
4、slow_query_log_file
慢查询日志文件的存储路径
(1) Time: 开始执行的时间
(2) User@Host: sql请求的主机信息
(3) Query_time: sql的执行花费时间,
(4)Lock_time: 上锁的时间,
(5)Rows_sent: 发送给客户端的行数,也就是结果的记录数
(6)剩下的是查询的数据库名字以及时间戳和具体的查询sql语句
MySQL中提供了mysqldumpslow工具来快速查找对应的慢查询日志记录。
mysqldumpslow可以通过执行时间、记录条数、sql语句正则式匹配 等条件来快速查询对应的慢查询记录。
mysqldumpslow -s c -t 10 /var/run/mysqld/mysqld-slow.log # 取出使用最多的10条慢查询
mysqldumpslow -s t -t 3 /var/run/mysqld/mysqld-slow.log # 取出查询时间最慢的3条慢查询
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log # 得到按照时间排序的前10条里面含有左连接的查询语句
mysqldumpslow -s r -t 10 -g 'left join' /var/run/mysqld/mysqld-slow.log # 按照扫描行数最多的
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_40276626/article/details/120802220
内容来源于网络,如有侵权,请联系作者删除!