Mysql 慢查寻

服务器运行环境 我用的是wampserver

先说命令:

show variables like 'slow_query%';  //查看是否开启慢查寻
set global slow_query_log =on; //开启慢查询
show variables like 'long_query_time';  //查看慢查寻记录的时间
 set long_query_time =3; //设置记录执行超过3秒的sql
 

步骤:

1.mysql命令行 输入

show variables like 'slow_query%';
结果如下:
mysql> show variables like 'slow_query%';
+---------------------+---------------------------------------------------------
-----+
| Variable_name       | Value
     |
+---------------------+---------------------------------------------------------
-----+
| slow_query_log      | OFF
     |
| slow_query_log_file | D:\wamp\wamp\bin\mysql\mysql5.6.17\data\SZLD-PC-103-slow
.log |
+---------------------+---------------------------------------------------------
-----+
2 rows in set (0.00 sec)

mysql>

通过语句查询出来的结果,可以看到

slow_query_log 是OFF   即 慢查寻没有开启

慢查寻日志存放路径 是 slow_query_log_file 后面的路径,这个一般不用改(因为我改了几次都没反应 = =)

慢查询开启方式:

mysql 命令行 输入 

mysql> set global slow_query_log =on;
Query OK, 0 rows affected (0.05 sec)

接着再输入 查询语句
show variables like 'slow_query%';
结果如下:

mysql> show variables like 'slow_query%';
+---------------------+---------------------------------------------------------
-----+
| Variable_name       | Value
     |
+---------------------+---------------------------------------------------------
-----+
| slow_query_log      | ON
     |
| slow_query_log_file | D:\wamp\wamp\bin\mysql\mysql5.6.17\data\SZLD-PC-103-slow
.log |
+---------------------+---------------------------------------------------------
-----+
2 rows in set (0.01 sec)

已经显示开启。


mysql 命令行输入

show variables like 'long_query_time';

结果如下:

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.01 sec)

mysql>

发现慢查询记录的是超过10秒的。

现在改成你想要设置的时间,我测试3秒;

Mysql命令行 输入:

set long_query_time = 3;   //注意这里不要加global
然后再执行一次

 show variables like 'long_query_time';
结果如下:

mysql> set long_query_time =3;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

mysql>

如果设置时间的时候加上了global,虽然显示query ok  但是你查询的结果还是10秒,没有变化,看了很多博客都是加上了global,我这里是没有效果,可能是用的环境不一样。

这个时候 慢查寻已经开启,记录sql语句执行时间超过3秒的所有语句。

千万不要重启服务器!千万不要重启服务器!千万不要重启服务器!

这个时候 你就可以打开浏览器访问你的本地项目了,比如你想看主页是不是有慢查询,你就访问你的主页,然后服务器会把超过3秒的sql都记录在日志里

日志的路径就是最上面的 slow_query_log_file 的路径。

我这里测试一下:

msql 命令行 输入:

select sleep(4);
执行结果

mysql> select sleep(4);
+----------+
| sleep(4) |
+----------+
|        0 |
+----------+
1 row in set (4.03 sec)

mysql>

现在去打开慢查寻日志:


可以看到 今天2017-8-29 9:17 执行的 select sleep(4) 已经被记录了。

嗯,就是这样。

每次重启wampserver 都要重新打开慢查寻,网上还有很多博客说 配置好了要重启一下mysql,重启了慢查寻还要重开,不知道是不是用的东西不一样的原因。

我用的是wampserver 亲测可行。

有用的点个赞,谢谢。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值