MySQL_MySQL查询截取分析之慢查询日志

1.引入

   当我们通过我们编写的sql去操作MySQL数据库的时候,我们会发现由于SQL语句本身的原因,部分的SQL语句的执行会比较慢,从而会导致整个系统的运行不流畅。那么如果说MySQL提供一个功能,专门给我们解决把执行的慢的那一部分语句给标注出来。这样我们解决问题就会更加的快速。那么下面呢,我们就一起来看一下MySQL提供的慢查询日志。

2.什么是MySQL的慢查询日志?

   所谓的慢查询日志,就是和其字面意思一样,是MySQL数据库提供的一种日志记录。它主要是用于记录在MySQL中响应时间超过阙值的语句。具体的就是指运行时间超过long_query_time值的SQL。就会被记录到日志中去。long_query_time默认的值大小是10。默认的情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这一个参数。当然,如果不是调优的需要,一般是不建议开启这一个参数。因为开启慢查询日志会占用空间。这样或多或少会带来一定的性能的影响。

3.如何查看MySQL的慢查询日志是否开启?

 (1).查看是否开启:

show variables like '%low_query_log%';

查询结果为:

(2).如何开启?

set global slow_query_log = 1;

查看结果:

注意:设置开启慢查询日志仅仅只对当前的操作有效,如果需要永久的生效,可以在配置文件中设置如下参数。但是一般这样的操作是属于运维经理或者是专业的DBA来操作的。

slow_query_log=1
show_query_log_file=C:\ProgramData\MySQL\MySQL Server 5.5\Data\DYHGUJX80GYHV89-slow.log 

4.什么样子的sql才会被记录到慢查询日志文件中呢,如何使用?

   一般慢的定义是有参数long_query_time控制,默认值为10.我们先在命令界面查看其大小以及对应的情况:

show variables like '%long_query_time%';

查询结果为:

也就是说这一个SQL语句执行的时间大于10秒就会被记录到我们指定的文件中去。

一般情况系统在运行的时候一条SQL执行10秒几乎是不可能的。那么我们就需要去调整这一个阈值。

调整使用如下命令:

set global long_query_time = 2;

新开一个会话:再次查看阈值:

5.测试

   由于没有足够大的数据量用来测试。那么我们使用线程的方式来实现延时执行SQL语句:

查看我们的慢查询日志文件中是否已经有记录:

点击查看里面的内容信息:

查看当前的系统中有多少条慢查询记录:(该语句可以当做是系统是否有问题的一个检查标准)

6.MySQL数据库日志查询分析工具:mysqldumpslow(略)

猜你喜欢

转载自blog.csdn.net/u013185175/article/details/106770501