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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值