MySQL之慢查询日志

x33g5p2x  于9个月前 转载在 Mysql  
字(0.9k)|赞(0)|评价(0)|浏览(113)

慢查询日志简介

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语句

mysqldumpslow分析工具

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 # 按照扫描行数最多的

相关文章

热门文章

更多