mysql慢查日志

简介

MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。
我们可以根据日志中的信息来判断我们的sql语句执行情况。如果要学会然后优化sql优化这个一定要会呀

开启慢查日志

  • mysql5.7版本默认开启了慢查日志,但是其日志文件名可能不是我们想要的,我们查询如下:
mysql> show variables like '%quer%';
+----------------------------------------+--------------------------+
| Variable_name                          | Value                    |
+----------------------------------------+--------------------------+
| binlog_rows_query_log_events           | OFF                      |
| ft_query_expansion_limit               | 20                       |
| have_query_cache                       | YES                      |
| log_queries_not_using_indexes          | OFF                      |
| log_throttle_queries_not_using_indexes | 0                        |
| long_query_time                        | 10.000000                |
| query_alloc_block_size                 | 8192                     |
| query_cache_limit                      | 1048576                  |
| query_cache_min_res_unit               | 4096                     |
| query_cache_size                       | 1048576                  |
| query_cache_type                       | OFF                      |
| query_cache_wlock_invalidate           | OFF                      |
| query_prealloc_size                    | 8192                     |
| slow_query_log                         | ON                       |
| slow_query_log_file                    | ICOS-20180710CX-slow.log |
+----------------------------------------+--------------------------+
15 rows in set, 1 warning (0.00 sec)

可以看到这个默认的慢查询日志文件名是:ICOS-20180710CX-slow.log。而且这个slow_query_log是开启状态的。

  • 在Mysql配置文件里(windows下My.ini,linux下my.cnf)里的mysqld的下面添加(如果存在就修改成对应的配置)
# 修改成下面这段配置 
log-output=FILE
general-log=0
general_log_file="DESKTOP-4RN63N2.log"
slow-query-log=1
slow_query_log_file="C:/ProgramData/MySQL/MySQL Server 5.5/logDESKTOP-4RN63N2-slow.log"
long_query_time=1  -- 这是大于多少秒的sql语句会被记录下来 

在这里插入图片描述
ps:my.ini 文件windows 通常在 C:\ProgramData\MySQL\MySQL Server 5.5 目录下

  • 最后重启mysql 服务,查看慢查询日志即可
    在这里插入图片描述

分析慢查日志

set long_query_time=0; -- 所有执行的sql都会被记录到慢查日志中 
-- 执行段sql语句
select * from t where a between 10000 and 20000; /*Q1*/

在这里插入图片描述
在这里插入图片描述

# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 0.020050  Lock_time: 0.001001 Rows_sent: 10001  Rows_examined: 10001
SET timestamp=1574349547;
select * from t where a between 10000 and 20000;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值