旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL开启慢查询日记的要领详解【MySQL教程】,MySQL,方法,日志

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:37评论:0


导读:本文重要引见了MySQL开启慢查询日记的要领,小编以为挺不错的,如今分享给人人,也给人人做个参考。一同追随小编过来看看吧,希望能协助到人人。1.1简介开启慢查询日记...
本文重要引见了MySQL 开启慢查询日记的要领,小编以为挺不错的,如今分享给人人,也给人人做个参考。一同追随小编过来看看吧,希望能协助到人人。

1.1 简介

开启慢查询日记,能够让MySQL纪录下查询凌驾指定时候的语句,经由过程定位剖析机能的瓶颈,才更好的优化数据库系统的机能。

1.2 登录数据库检察


[root@localhost lib]# mysql –uroot

由于没有设置设置暗码,有暗码的在 mysql –uroot –p 接暗码

1.2.1 进入MySql 查询是不是开了慢查询


mysql> show variables like 'slow_query%';

+---------------------+--------------------------------------------+

| Variable_name    | Value                   |

+---------------------+--------------------------------------------+

| slow_query_log   | OFF                    |

| slow_query_log_file | /application/mysql/data/localhost-slow.log |

+---------------------+--------------------------------------------+

2 rows in set (0.00 sec)

参数申明:

  1. slow_query_log 慢查询开启状况 OFF 未开启 ON 为开启

  2. slow_query_log_file 慢查询日记寄存的位置(这个目次须要MySQL的运转帐号的可写权限,平常设置为MySQL的数据寄存目次)

1.2.2 检察慢查询超时时候


mysql> show variables like 'long%';

+-----------------+-----------+

| Variable_name  | Value   |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

long_query_time 查询凌驾若干秒才纪录 默许10秒 修正成1秒

1.3 修正要领1:(不引荐)

要领一:长处暂时开启慢查询,不须要重启数据库 瑕玷:MySql 重启慢查询失效

引荐:依据营业需求,发起运用第二种,暂时能够用第一种

默许情况下slow_query_log的值为OFF,示意慢查询日记是禁用的,能够经由过程设置slow_query_log的值来开启,以下所示::是不是开启慢查询日记,1示意开启,0示意封闭。

1.3.1 检察是不是开启慢查询


mysql> show variables like '%slow_query_log%';

+---------------------+--------------------------------------------+

| Variable_name    | Value                   |

+---------------------+--------------------------------------------+

| slow_query_log   | OFF                    |

| slow_query_log_file | /application/mysql/data/localhost-slow.log |

+---------------------+--------------------------------------------+

2 rows in set (0.01 sec)

输入 语句修正(重启后失效,发起在/etc/my.cnf中修正永远见效)


mysql> set global slow_query_log=1;

Query OK, 0 rows affected (0.11 sec)

1.3.2 再次检察


mysql> show variables like '%slow_query_log%';

+---------------------+--------------------------------------------+

| Variable_name    | Value                   |

+---------------------+--------------------------------------------+

| slow_query_log   | ON                     |

| slow_query_log_file | /application/mysql/data/localhost-slow.log |

+---------------------+--------------------------------------------+

2 rows in set (0.00 sec)

1.4 修正要领2:(引荐)

修正 MySql 慢查询,好多人不知道my.cnf 途径,能够用 find 查找

备注:我的MySQL 是编译的 途径为 /etc/my.cnf (平常都是这里)


[root@localhost log]# find / -type f -name "my.cnf"

/application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf

/application/mysql-5.5.51/mysql-test/suite/federated/my.cnf

/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf

/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf

/etc/my.cnf  ###(平常都是这里)

1.4.1.1 修正


[root@localhost log]# vim /etc/my.cnf

找到 [mysqld] 下面增加


slow_query_log =1

slow_query_log_file=/application/mysql/data/localhost-slow.log

long_query_time = 1

参数申明:

  1. slow_query_log 慢查询开启状况 1 为开启

  2. slow_query_log_file 慢查询日记寄存的位置

  3. long_query_time 查询凌驾若干秒才纪录 默许10秒 修正成1秒

修正完重启MySQL

1.5 检察、测试

1.5.1.1 插进去一条测试慢查询


mysql> select sleep(2);

+----------+

| sleep(2) |

+----------+

|    0 |

+----------+

1 row in set (2.00 sec)

1.5.1.2 检察慢查询日记


[root@localhost data]# cat /application/mysql/data/localhost-slow.log

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time         Id Command  Argument

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time         Id Command  Argument

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time         Id Command  Argument

# Time: 170605 6:37:00

# User@Host: root[root] @ localhost []

# Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

SET timestamp=1496615820;

select sleep(2);

1.5.1.3 经由过程MySQL敕令检察有若干慢查询


mysql> show global status like '%Slow_queries%';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Slow_queries | 1   |

+---------------+-------+

1 row in set (0.00 sec)

1.6 日记剖析东西mysqldumpslow

在生产环境中,假如要手工剖析日记,查找、剖析SQL,显然是个体力活,MySQL供应了日记剖析东西mysqldumpslow

相干引荐:

MySQL慢查询日记相干的设置和运用

MySQL中一般、慢查询日记的区分

Mysql优化之MySQL慢查询操纵引见

以上就是MySQL开启慢查询日记的要领详解的细致内容,更多请关注ki4网别的相干文章!

标签:MySQL方法日志


欢迎 发表评论: