MySQL开启慢查询探究

前言:在项目开发中,有些SQL语句可能执行的时间比较长,需要给予优化,为此我们需要开启MySQL慢查询日志,用于记录那些执行时间比较长的SQL语句,然后给予优化处理,以提高我们项目的代码响应速度,MySQL中默认慢查询日志是关闭的;

第1步、在cmd命令窗口登录mysql客户端----->在mysql命令行中输入:show  variables like '%quer%';  如下图所示:


看到这张图片中的内容,可能有人会有疑问:为什么我输入同样的命令,显示的信息却不一样呢?  这是mysql版本的问题,不同的mysql版本对应上图信息不同,如:上面的图片是mysql5.5版本的输出内容,其中控制慢查询日志是否开启的变量为:slow_query_log和log_slow_queries(这两个随便设置一个,另一个就会跟着变化); 而在低于5.5版本中的mysql中,其控制慢查询日志是否开启的变量只有一个:log_slow_quries  当然这不是我们这里讨论的重点; 很明显上面的slow_query_log = ON,也就是慢查询日志已经开启;那么假如我们当前的slow_query_log = OFF,该如何开启呢? 

有两种方式: 

方式一、永久开启:windows系统在MySQL安装目录下的my.ini中配置,Linux系统在/etc/my.cnf中配置,配置完成后记得要重启MySQL服务器,重启命令:net stop mysql       net start mysql  执行这两条命令后就重启完毕(注意:命令末尾不带分号;)


方式二、当前环境下开启:在mysql客户端命令行中输入: set global log_slow_queries = off; //OFF、off、0都行

运行完该条命令后关闭当前的cmd命令窗口(有些命令不关闭也会立即生效,这里建议关闭),再次打开cmd命令窗口,运行mysql客户端,输入show variables like '%quer%';就可以看到我们的配置生效了,类似的还可以使用set global 命令去配置其它选项;   这里就不再上效果图了,最后强调一点的是:为什么叫当前环境下开启?  为什么不是永久生效? 那是因为方式二的配置,如果重启MySQL服务器的话,就会失效,配置过的选项就会恢复到原来的值,所以叫当前环境下开启-------可以这么理解:重启一次MySQL服务器就刷新了一次环境!!!


第2步、模拟一下慢查询操作,看看慢查询日志中都记录了什么信息?

在cmd中登录mysql客户端,输入查询语句:select sleep(3);     //注意:上面我们配置的慢查询时间标准为1s,所以这条SQL语句执行后将被我们配置的慢查询日志捕捉到

打开我们前面配置的慢查询日志文件:slow_query_log_file="F:\wamp\MySQL5\data\mysql_slow_query.log",如下图所示:


温馨提示:在开启MySQL慢查询功能时,在运行net start mysql命令时,如果报错:1067 进程意外终止,  这种错误绝大部分情况都是my.ini配置文件中出现了错误配置项!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值