应用实践:四步法分析定位生产环境MySQL数千条SQL语句中的问题如果my.cnf文件是5.0或5.1版本,需要添加如下选项:log-slow-queries="mysql_slow_query.log"如果是5.5以上的版本,可以添加如下选项:slow-query-log=Onslow_query_log_file="mysql_slow_query.log"log-query-not-using-indexes但是上面的方法修改了mysql配置文件需要重启mysql,这也是它的缺点。(2)方法二:依次执行mysql的如下命令:setglobalslow_query_log=ON;setgloballong_query_time=3600;setgloballog_querise_not_using_indexes=ON;第二步:使用如下命令查看mysql的慢查询是否开启1)查看设置属于慢查询的时间showvariableslike"long_query_time";执行结果如下:2)查询mysql慢查询日志存储的相关信息showvariableslike"%slow%";执行结果如下:第三步:用例说明如何使用(1)使用下面的语句代替真正的慢查询语句原因:一般mysql的执行速度比较快,需要创建的数据比较多达到10s。因此,用下面的语句模拟起来更容易:selectsleep(10);(2)通过如下语句查询,当前语句有多少是showglobalstatuslike'%slow%'的数据慢查询;执行结果如下:结果说明:因为刚才执行了一条sleep语句,所以Slow_queries中的值变成了1。第四步:使用最后的日志分析查询语句慢的真正原因:具体操作方法是查看日志。比如刚才产生了一条慢查询,那么日志内容如下:从上面我们可以看出,慢查询语句是selectsleep(10);但是实际生产环境中产生的慢查询SQL语句需要借助explain进行分析,然后根据获取到的相关信息进行有针对性的改进。
