mysql mysqldumpslow_mysql 慢查询日志 (mysqldumpslow坑还没填)

MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过long_query_time值的SQL语句(秒为单位)。

默认情况下MySql数据库没有开启慢查询日志,

mysql> show variables like '%slow_query_log%';

+---------------------+---------------------------------------------------------------------+

| Variable_name | Value |

+---------------------+---------------------------------------------------------------------+

| slow_query_log | OFF |

| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\LAPTOP-6UTRE719-slow.log |

+---------------------+---------------------------------------------------------------------+

2 rows in set (0.00 sec)

开启慢查询日志

mysql> set global slow_query_log = 1;

Query OK, 0 rows affected (0.01 sec)

mysql> show variables like '%slow_query_log%';

+---------------------+---------------------------------------------------------------------+

| Variable_name | Value |

+---------------------+---------------------------------------------------------------------+

| slow_query_log | ON |

| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\LAPTOP-6UTRE719-slow.log |

+---------------------+---------------------------------------------------------------------+

2 rows in set (0.00 sec)

其中

1.slow_query_log_file 项的值是保存慢查询日志的位置,默认缺省文件名为 host_name-slow.log。

2.这个设置的值只是环境变量,重启服务后就失效了,如果想要永久配置,要在主配置文件中修改(my.cnf中的[mysqld]下)。

slow_query_log = 1

slow_query_log_file = xxx.xxx

关于long_query_time阈值 查询和设置与上面语法一样

mysql> show variables like 'long_query_time%';

+-----------------+-----------+

| Variable_name | Value |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

mysql> set global long_query_time=5;

Query OK, 0 rows affected (0.00 sec)

当前会话看不到,重新开一个终端即可查看。(也是临时环境变量)

来一些耗时操作。。。select sleep(6);

可以在文件里查看耗时操作的具体内容

也可以这样子

mysql> show global status like '%Slow_queries%';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Slow_queries | 1 |

+---------------+-------+

1 row in set (0.27 sec)

查看耗时sql的统计数量。

mysqldumpslow

--mysqldumpslow是-shell中用来方便查看慢查询日志的指令

得到返回记录集最多的10个sql

mysqldumpslow -s r -t 10

得到访问次数最多的10个sql

mysqldumpslow -s c -t 10

得到按时间顺序排序的前10条里面有 xxx 串的查询语句

mysqldumpslow -s t -t 10 -g "xxx"

具体指令 mysqldumpslow --help 查询帮助文档

以后再补..

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值