作用: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. Web性能优化系列(2):剖析页面绘制时间

    本文由 伯乐在线 - J.c 翻译,sunbiaobiao 校稿.未经许可,禁止转载!英文出处:www.deanhume.com.欢迎加入翻译小组. 最近,我参加了在伦敦举办的Facebook移动开发 ...

  2. 以后的博客将更新到自己的域名pythonsite.com,欢迎访问

    以后的博客将更新到自己的域名pythonsite.com,欢迎访问

  3. AtomicInteger源码

    一.概念 AtomicInteger,一个提供原子操作的Integer的类.在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字.而Ato ...

  4. 【Pyhon】利用BurpSuite到SQLMap批量测试SQL注入

    前言 通过Python脚本把Burp的HTTP请求提取出来交给SQLMap批量测试,提升找大门户网站SQL注入点的效率. 导出Burp的请求包 配置到Burp的代理后浏览门户站点,Burp会将URL纪 ...

  5. 八、mini2440裸机程序之UART(1)简单介绍【转】

    转自:http://blog.csdn.net/shengnan_wu/article/details/8298869 一.概述          S3C2440通用异步接收和发送(UART)提供了三 ...

  6. python报错IndexError: list index out of range

    今天写个ping vpn的python脚本,报错IndexError: list index out of range 最后查看是python读取文件中出现空格 去掉空格即可

  7. curl wget 不验证证书进行https请求【转】

    $ wget 'https://x.x.x.x/get_ips' --no-check-certificate $ curl 'https://x.x.x.x/get_ips' -k 转自 curl ...

  8. Python_oldboy_自动化运维之路_面向对象(十)

    面向对象编程 OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单,并且可以大大提高程序开发效率 ,另外,基于面向 ...

  9. ***在PHP语言中使用JSON和将json还原成数组(json_decode()的常见错误)

    在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_deco ...

  10. Codeforces Round #355 (Div. 2) D. Vanya and Treasure

    题目大意: 给你一个n × m 的图,有p种宝箱, 每个点上有一个种类为a[ i ][ j ]的宝箱,a[ i ][ j ] 的宝箱里有 a[ i ][ j ] + 1的钥匙,第一种宝箱是没有锁的, ...