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)

参数说明:

slow_query_log 慢查询开启状态  OFF 未开启 ON 为开启
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

参数说明:

slow_query_log 慢查询开启状态  1 为开启
slow_query_log_file 慢查询日志存放的位置

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 开启慢查询日志的更多相关文章

  1. MySQL开启慢查询日志时报Errcode: 13 的解决方法

    开启慢查询日志时会出现(Errcode: 13 - Permission denied)文件找不到的错误,但文件明明是存在的并且有读写的权限. mysql> set global slow_qu ...

  2. MySQL 开启慢查询日志与普通日志

    一.开启满查询日志 1.查看慢查询日志 SHOW VARIABLES LIKE '%slow%'; 2.开启慢查询日志 set GLOBAL slow_query_log =on; 3.设置慢查询日志 ...

  3. aws mysql 开启慢查询日志, 并利用mysqlsla 分析

    1.开启慢查询日志服务 (a) sql 查询配置 # 查看慢日志是否开启,开启为ON show variables like 'slow_query%'; show variables like 'l ...

  4. mysql开启慢查询日志及查询--windows

    MySQL慢查询配置 1. 慢查询有什么用? 它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化. 2. 如何开启慢查询? ...

  5. MYSQL开启慢查询日志实施

    查看当前服务器是否开启慢查询:1.快速办法,运行sql语句show VARIABLES like "%slow%" 2.直接去my.conf中查看.my.conf中的配置(放在[m ...

  6. MySql开启慢查询日志并使用pt-query-digest 分析

    慢查询日志会将查询过程中超出你设置的时间的查询记录下来,以便供开发者进行分析和优化. 1. 开启慢查询 1.1 查看当前设置 mysql> show variables like "% ...

  7. 操作3 mongodb和mysql 开启慢查询日志 ,以及mongodb从配置文件启动

    1. mongodb从配置文件启动 创建配置文件:/usr/local/mongodb/etc/mongodb.conf 配置文件的内容为: #Directory and relavent set d ...

  8. mysql开启慢查询日志

    5.1版本之前,在 my.cnf添加如下信息, long_query_time=1 log_slow_queries=/data/mysql/slow.log 5.1版本之后,在 my.cnf添加如下 ...

  9. Mysql: 开启慢查询日志[ERROR] unknown variable 'log-slow-queries'处理办法

    参考: http://www.dataguru.cn/thread-305503-1-1.html # slow query log qjp 20160921 # mysql5.6版本以上,取消了参数 ...

随机推荐

  1. .exe简单的更新软件demo

    百度网盘源码加文件:http://pan.baidu.com/s/1qYe2Vgg 功能:通过网站更新用户的软件,需要联网,也可以通过本地网站更新局域网用户软件. 根本实现:1.一个网站(本地就可以) ...

  2. QT5 && VS2013配置

    1.下载安装包 qt-opensource-windows-x86-msvc2013_64-5.7.0.exe VS2013_RTM_ULT_ENU.iso 插件:qt-vs-addin-msvc20 ...

  3. EF 关联数据查询

    1 直接使用表对应的实例属性值 ,如本例中的RoleUserInfo的属性UserInfo IEnumerable <RoleUserInfo > roleUserInfos= db.Ro ...

  4. JS实现图片不间断滚动

    方法一: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title ...

  5. NodeJS 阻塞/非阻塞

    阻塞实例 var fs = require('fs'); var data = fs.readFileSync('test.txt') console.log(data.toString()); co ...

  6. Java中四种遍历List的方法

    package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterator; imp ...

  7. PHP 学习笔记(3)

    <?phpif (isset($_POST['action']) && $_POST['action'] == 'submitted') {    echo '<pre&g ...

  8. 蓝桥杯-猜字母-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  9. SublimeText3编译JavaScript

    这个操作很简单总的来说分为两步,1.安装Node.js  2.添加SublimeText3 JS编译系统 首先我们去官网下载node.js https://nodejs.org/en/ 然后安装 验证 ...

  10. 点击滚动图片JS部分代码以及css设置注意事项

    下面js代码可以实现8张图片点击左右按钮后切换的过渡动画效果 var pslul11=document.getElementById('pslul11')var pslspan1=document.g ...