一、概述
mysql的慢查询日志是mysql提供的一种日志记录,它用来记录在mysql中响应时间超过阀值(long_query_time,单位:秒)的sql语句。默认情况下,mysql不启动慢查询日志。数据库技术:mysql慢查询日志轮转_MySQL慢查询日志实操简单介绍如何开启慢查询日志,如何用mysqldumpslow分析慢查询。
二、慢查询日志设置
1、临时设置
临时开启慢查询日志(重启失效)
set global slow_query_log = on;
注:如果想关闭慢查询日志,只需要执行 set global slow_query_log = off; 即可。
临时慢查询时间临界点 查询时间高于这个临界点的都会被记录到慢查询日志中(重启失效)
set long_query_time = 1;
设置慢查询存储的方式(重启失效)
set global log_output = file;
说明: 可以看到,我这里设置为了file,就是说我的慢查询日志是通过file体现的,默认是none,我们可以设置为table或者file,如果是table则慢查询信息会保存到mysql库下的slow_log表中。
2、查询慢查询日志的开启状态和慢查询日志储存的位置
show variables like '%quer%';
参数说明:
- slow_query_log : 是否已经开启慢查询
- slow_query_log_file : 慢查询日志文件路径
- long_query_time : 超过多少秒的查询就写入日志
log_queries_not_using_indexes 如果值设置为on,则会记录所有没有利用索引的查询(性能优化时开启此项,平时不要开启)
3、查看存放日志的形式
show variables like 'log_output';
4、永久开启慢日志
修改my.cnf
在配置文件my.cnf(一般为/etc/my.cnf)中的[mysqld] section增加如下参数。
[mysqld]slow_query_log= 1slow_query_log_file= /var/lib/mysql/slow-query.log # 若没有指定,默认免费精选名字大全为hostname_slow.loglong_query_time= 1log_queries_not_using_indexes= 1
其中,slow_query_log = 1,表示开启慢查询,0表示关闭
slow_query_log_file,指定慢查询日志路径,需要mysql对该路径有写权限
long_query_time = 1,表示查询时间>=1秒才记录日志,默认10s
log_queries_not_using_indexes = 1,表明记录没有使用索引的 sql 语句
重启mysql服务,重启mysql后会看到/var/lib/mysql/slow-query.log文件。
三、慢查询测试
制造慢查询并执行。如下:
mysql> select sleep(1);+----------+ | sleep(1) | +----------+ | 0 | +----------+ 1 row in set (1.00 sec)
慢查询日志
打开慢查询日志文件。可以看到上述慢查询的sql语句被记录到日志中。
四、慢查询分析工具
mysqldumpslow
mysqldumpslow是mysql自带的分析慢查询的工具。该工具是perl脚本。
常用参数如下:
- -s:排序方式,值如下
- c:查询次数
- t:查询时间
- l:锁定时间
- r:返回记录
- ac:平均查询次数
- al:平均锁定时间
- ar:平均返回记录书
- at:平均查询时间
- -t:topn查询
- -g:正则表达式
获取访问次数最多的5个sql语句:
按照时间排的top 5个sql语句
$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log
按照时间排序且含有'like'的top 5个sql语句
$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log
五、mysql 清理slowlog方法
set global slow_query_log = 'off'; alter tablemysql.slow_log rename mysql.slow_log_drop; create table mysql.slow_log likemysql.slow_log_drop; set global slow_query_log = 'on'; drop table mysql.slow_log_drop;
六、小结
默认情况下,mysql不启动慢查询日志。若要检查慢查询,需要我们手动设置这个参数。一般情况下,若非调优需要,不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
到此这篇关于mysql慢查询日志轮转_mysql慢查询日志实操的文章就介绍到这了,更多相关mysql慢查询 内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多数据库技术:mysql慢查询日志轮转_MySQL慢查询日志实操,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/1238876.html