1.顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slow query。
慢查询日志采用的是简单的文本格式,可以通过各种文本编辑器查看其中的内容。其中记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息,用来帮助数据库管理人员解决可能存在的性能问题。
首先修改my.ini开启慢查询,设置好慢查询时间和日志
slow-query-log=1#开启慢查询
slow_query_log_file=D:\Program Files\mysql-5.6.23-winx64\data\slow_query_log.txt#日志文件绝对路径
long_query_time=1#慢查询时间默认为10s,这里改为1s
然后重启mysql服务,在mysql终端运行如下命令
show variables like '%quer%';#查看mysql的相关设置
可以看到慢查询开启,同时日志路径已经配置
接下来进行测试,首先用存储过程建立一个4000000条数据的表,
可以看出共有四次慢查询
同时也可以到日志文件中去查看
MySQL, Version: 5.6.23-log (MySQL Community Server (GPL)). started with:
TCP Port: 0, Named Pipe: (null)
Time Id Command Argument
# Time: 150901 14:40:14
# User@Host: root[root] @ localhost [::1] Id: 4
# Query_time: 5.444311 Lock_time: 0.019001 Rows_sent: 1 Rows_examined: 4000000
use temp;
SET timestamp=1441089614;
select * from emp where empno='3456745';
# Time: 150901 15:00:32
# User@Host: root[root] @ localhost [::1] Id: 4
# Query_time: 1.515087 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4000000
SET timestamp=1441090832;
select * from emp where empno='3456745';
# Time: 150901 15:00:49
# User@Host: root[root] @ localhost [::1] Id: 4
# Query_time: 1.510086 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4000000
SET timestamp=1441090849;
select * from emp where empno='3456743';
# Time: 150901 15:01:09
# User@Host: root[root] @ localhost [::1] Id: 4
# Query_time: 1.538088 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4000000
SET timestamp=1441090869;
select * from emp where empno='3466666';