仲翎逸仙

放下傲慢,放下贪嗔痴,专注于此时此刻,日日如此,必有所成。

MySQL慢查询日志

0.什么是慢查询日志

    MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体值运行时间超过 long_query_time 值的SQL,则会被记录到慢查询日志中. long_query_time的默认值为10,意思是10秒.


1.如何使用

     查询慢查询是否启动和慢查询日志默认位置


.      可以利用 

set global slow_query_log=1;

开启慢查询,当然只限于此处的会话.,重启后自动失效

      如果需要永久生效,需要在MySQL的配置文件my.cnf的[mysqld]下添加 

          

   slow_query_log=1

   slow_query_log_file=/var/lib/mysql/ms-slow.log    //主机名-slow.log

   查询慢查询时间以及修改时间:

  

 show global variables like '%long_query_time%';

    set global long_query_time=3;
如果需要永久生效,需要在MySQL的配置文件my.cnf的[mysqld]下添加 

   long_query_time=3

     记住命令中要加global,因为是当次修改的,如果不加global查询会显示没有改变,需要重新连接或者新开一个会话才可以看到改变


       模拟慢SQL

 

        查看慢SQL日志记录情况

   

  查看慢SQL数量


日志分析工具mysqldumpslow

mysqldumpslow --help


s:是表示按照何种方式排序

c:访问次数

l:返回记录

r:查询时间

al:平均锁定时间

ar:平均返回记录数

at:平均查询时间

t: 即为返回前面多少条的数据

g:后面搭配一个正则匹配模式,大小写不敏感的.


小例子:(把慢日志路径换成自己的)

 1.得到返回记录最多的10个SQL

    mysqldumpslow -s r -t 10 /var/lib/mysql/ms-slow.log

2.得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /var/lib/mysql/ms-slow.log

3.得到按照时间排序的前10条里面含左连接的查询语句

mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/ms-slow.log

4.另外建议在使用这些命令时结合|和more使用,否则有可能会出现爆屏情况

mysqldumpslow -s r  -t 10 /var/lib/mysql/ms-slow.log | more




阅读更多
版权声明:本文为博主原创文章,转载请注明地址。 https://blog.csdn.net/u012150590/article/details/79950714
上一篇Java内部类详解
下一篇mysql忘记root密码
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭