MySql数据库开启慢查询并查看日志

前言:

           在我们项目运行过程中,会遇到因为SQL执行缓慢导致页面响应时间过长,甚至长时间未响应导致服务器运行异常的现象,因此我们需要定位查询执行缓慢的SQL语句,对其进行优化提高我们项目的运行效率。

1.查看是否开启慢查询日志

show variables like 'slow_query_log';

 查询结果如下图,Value为OFF,则没有开启慢查询日志

使用命令开启慢查询日志

set global slow_query_log=on;

2.设置没有开启索引的SQL语句记录到慢查询日志

set global log_queries_not_using_indexes=on;

3.设置超过多长时间的SQL记录到慢查询日志

首先查询默认超时多久

show variables like 'long_query_time';

本人的MySql是默认超过10秒才会记录,将其改为0.5s

set long_query_time=0.5;

4.查看慢查询日志存储位置

show variables like 'slow_query_log_file';

查询到日志位置以后就可以根据日志记录对相应SQL进行调优,一般这个位置是不会更改的,如果需要自定义,则使用以下命令

set global slow_query_log_file='/home/mysql/sql_log/mysql-slow.log';

5.日志内容解析

##SQL执行时间
# Time: 2018-12-28T09:01:11.975195Z

##访问IP
# User@Host: root[root] @ localhost [::1]  Id:    21

##SQL执行信息
# Query_time: 0.000788  Lock_time: 0.000147 Rows_sent: 15  Rows_examined: 287

##SQL执行时间
SET timestamp=1545987671;

##SQL语句
SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID;

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值