作用:mysql慢查询日志可监控有效率问题的SQL 。、

一、开启mysql慢查询日志功能

1、查看是否开启 未使用索引的SQL记录日志查询

mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF |
+-------------------------------+-------+
1 row in set (0.00 sec)

开启 未使用索引的SQL记录日志查询

mysql> set global log_queries_not_using_indexes=on;
Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON |
+-------------------------------+-------+
1 row in set (0.00 sec)

2、查看超过多长时间的查询记入慢查询日志中

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

默认10s,为做测试,修改为0,即记录所有。

mysql> set global long_query_time=0;
Query OK, 0 rows affected (0.00 sec)

ps:需要断开重新连接,才会查看到更新的状态

mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 0.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

3、查看是否开启 mysql慢查询日志功能

mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | OFF |
+----------------+-------+
1 row in set (0.01 sec)

开启慢查询日志功能

mysql> set global slow_query_log=on;
Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | ON |
+----------------+-------+
1 row in set (0.01 sec)

4、查看日志记录位置

mysql> show variables like 'slow_query_log_file';
+---------------------+--------------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------------+
| slow_query_log_file | /usr/local/mysql/data/bogon-slow.log |
+---------------------+--------------------------------------+
1 row in set (0.00 sec)

5、执行若干SQL语句,看是否记入日志

查看最后20条记录如下,成功记录了最后20条SQL执行语句。

[root@bogon ~]# tail -20 /usr/local/mysql/data/bogon-slow.log
# Time: 190115 17:46:21
# User@Host: root[root] @ localhost []
# Query_time: 0.000329 Lock_time: 0.000166 Rows_sent: 40 Rows_examined: 40
SET timestamp=1547545581;
show tables;
# Time: 190115 17:46:36
# User@Host: root[root] @ localhost []
# Query_time: 0.054437 Lock_time: 0.000115 Rows_sent: 104 Rows_examined: 104
SET timestamp=1547545596;
select * from TABLES;
# Time: 190115 17:49:12
# User@Host: root[root] @ localhost []
# Query_time: 0.001611 Lock_time: 0.000705 Rows_sent: 21 Rows_examined: 21
SET timestamp=1547545752;
desc TAbles;
# Time: 190115 17:49:41
# User@Host: root[root] @ localhost []
# Query_time: 0.002142 Lock_time: 0.000056 Rows_sent: 104 Rows_examined: 104
SET timestamp=1547545781;
select VERSION from Tables;

6、慢查日志的存储格式

主要有五部分组成

# Time: 190115 17:54:44                                                      执行时间
# User@Host: root[root] @ localhost [] 执行主机
# Query_time: 0.000073 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 执行信息
SET timestamp=1547546084; 时间戳
select database(); 执行语句

二、慢查询日志分析工具

1、mysql自带的 mysqldumpslow工具

使用mysqldumpslow查看最近6条记录

[root@bogon ~]# mysqldumpslow -t 6 /usr/local/mysql/data/bogon-slow.log 

Reading mysql slow query log from /usr/local/mysql/data/bogon-slow.log
Count: 1 Time=0.05s (0s) Lock=0.00s (0s) Rows=104.0 (104), root[root]@localhost
select * from TABLES Count: 1 Time=0.01s (0s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
select databas() Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=104.0 (104), root[root]@localhost
select VERSION from Tables Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=21.0 (21), root[root]@localhost
desc TAbles Count: 2 Time=0.00s (0s) Lock=0.00s (0s) Rows=1.0 (2), root[root]@localhost
show variables like 'S' Count: 2 Time=0.00s (0s) Lock=0.00s (0s) Rows=40.0 (80), root[root]@localhost
show tables

2、pt-query-digest分析工具

1)安装

[root@bogon ~]# wget wget percona.com/get/pt-query-digest
[root@bogon ~]# chmod u+x pt-query-digest
[root@bogon ~]# mv /root/pt-query-digest /usr/bin/

2)启动出现错误提示

[root@bogon bin]# pt-query-digest --help
Can't locate Digest/MD5.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/pt-query-digest line 2470.
BEGIN failed--compilation aborted at /usr/bin/pt-query-digest line 2470.

安装perl-Digest-MD5即可

[root@bogon bin]# yum install perl-Digest-MD5

mysql慢查询日志功能的使用的更多相关文章

  1. mysql开启查询日志功能

    1.开启查询日志  https://www.cnblogs.com/kerrycode/p/7130403.html MYsql 查询日志配置    mysql> show variables ...

  2. mysql慢查询日志分析工具 mysqlsla(转)

    mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览 ...

  3. MySQL慢查询日志相关的文件配置和使用。

    MySQL慢查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要的参考依据,是一个非常实用的功能,MySQL慢查询日志的开启和配置非常简单,可以指定记录的文件(或者表),超过的时间阈值等就可 ...

  4. MySQL慢查询日志相关的配置和使用。

    MySQL慢查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要的参考依据,是一个非常实用的功能,MySQL慢查询日志的开启和配置非常简单,可以指定记录的文件(或者表),超过的时间阈值等就可 ...

  5. MySQL慢查询日志工具mysqlsla

    mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览 ...

  6. MySQL慢查询日志的使用

    当系统性能达到瓶颈的时候,就需要去查找那些操作对系统的性能影响比较大,这里可以使用数据库的慢查询日志功能来记录一些比较耗时的数据可操作来确定哪些地方需要优化. 下面介绍一下使用慢查询日志的一些常用命令 ...

  7. 读懂mysql慢查询日志

    我们来看一下如何去读懂这些慢查询日志.在跟踪慢查询日志之前,首先你得保证最少发生过一次慢查询.如果你没有可以自己制造一个:root@server# mysql -e 'SELECT SLEEP(8); ...

  8. MySQL 慢查询日志分析及可视化结果

    MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...

  9. ELK logstash 处理MySQL慢查询日志(初步)

    写在前面:在做ELK logstash 处理MySQL慢查询日志的时候出现的问题: 1.测试数据库没有慢日志,所以没有日志信息,导致 IP:9200/_plugin/head/界面异常(忽然出现日志数 ...

随机推荐

  1. html5 canvas 水平渐变描边

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. ASP.NET生成二维码

    下面使用ThoughtWorks.QRCode.dll这个类库,实现生成二维码 使用时需要增加:下面三个命名空间 using ThoughtWorks.QRCode.Codec; using Thou ...

  3. 有关楼层滚动且对应楼层Nav导航高亮显示

    $(document).ready(function(e) { //定义数组,储存楼层距离顶部的高度(floorsTop) var floorsTop=[]; function floorsTopF( ...

  4. Angular 下的 directive (part 2)

    ngCloak ngCloak指令被使用在,阻止angular模板从浏览器加载的时候出现闪烁的时候.使用它可以避免闪烁问题的出现.   该指令可以应用于<body>元素,但首选使用多个ng ...

  5. HDU 2988 Dark roads (裸的最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2988 解题报告:一个裸的最小生成树,没看题,只知道结果是用所有道路的总长度减去最小生成树的长度和. # ...

  6. weblogica

  7. 06 Go 1.6 Release Notes

    Go 1.6 Release Notes Introduction to Go 1.6 Changes to the language Ports Tools Cgo Compiler Toolcha ...

  8. javascript-序列化,时间,eval,转义

    一:序列化 JSON.stringify(li) 将对象转字符串 JSON.parse(str1) 将字符串转对象 li=[11,22,33] [11, 22, 33] li [11, 22, 33] ...

  9. 移动端console.log()调试

    在微信或app进行开发的时候,没法直接查看console.log的输出内容,调试起来简直太痛苦了. 1.笨笨的方法 fiddler抓请求:追加dom节点,显示调试信息. var div =docume ...

  10. How to return plain text from AWS Lambda & API Gateway

    With limited experience in AWS Lambda & API Gateway, it's struggling to find the correct way to ...