《MySQL系列-InnoDB引擎15》慢查询日志拓展-mysqldumpslow日志分析工具

Posted DATA数据猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《MySQL系列-InnoDB引擎15》慢查询日志拓展-mysqldumpslow日志分析工具相关的知识,希望对你有一定的参考价值。

慢查询日志拓展-mysqldumpslow日志分析工具

1.mysqldumpslow

[root@zxy_master mysql]# mysqldumpslow --help
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]

Parse and summarize the MySQL slow query log. Options are
#分析并总结MySQL慢速查询日志。选项包括

  --verbose    verbose #详细
  --debug      debug #调试
  --help       write this text to standard output #帮助将此文本写入标准输出

  -v           verbose #详细
  -d           debug #调试
  -s ORDER     what to sort by (al, at, ar, c, l, r, t), 'at' is default
  				# 排序依据 (al, at, ar, c, l, r, t),默认为'at'
                al: average lock time
                # 平均锁定时间
                ar: average rows sent
                # 发送的平均行数
                at: average query time
                # 平均查询时间
                 c: count
                 # 计数
                 l: lock time
                 # 锁定时间
                 r: rows sent
                 # 发送的行数
                 t: query time
                 #查询时间
  -r           reverse the sort order (largest last instead of first)
  				# 反转排序顺序(最大的最后一个,而不是第一个)
  -t NUM       just show the top n queries
  				# NUM仅显示前n个查询
  -a           don't abstract all numbers to N and strings to 'S'
  				# 不要将所有数字抽象为N,将字符串抽象为S
  -n NUM       abstract numbers with at least n digits within names
  				# NUM个抽象数字,名称中至少有n个数字
  -g PATTERN   grep: only consider stmts that include this string
  				# grep:只考虑此字符串的stmts
  -h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),
               default is '*', i.e. match all
               # hostname数据库服务器的主机名,用*-slow.log filename(可以是通配符),默认为*,即匹				配所有
  -i NAME      name of server instance (if using mysql.server startup script)
  				# 服务器实例的名称(如果使用MySQL.server启动脚本)
  -l           don't subtract lock time from total time
  				# 不要从总时间中减去锁定时间

2.mysqldumpslow结果介绍

[root@zxy_master mysql]# mysqldumpslow -s r -t 10 /var/lib/mysql/zxy_master-slow.log

Reading mysql slow query log from /var/lib/mysql/zxy_master-slow.log
Count: 2  Time=11.00s (22s)  Lock=0.00s (0s)  Rows=1.0 (2), root[root]@localhost
  select sleep(N)

Died at /usr/bin/mysqldumpslow line 167, <> chunk 1.

# Count:2 --出现次数
# Time=11.00s (22s) --执行最长时间,累计总耗费时间
# Lock=0.00s (0s) --等待锁的时间
# Rows=1.0 (2) --发送给客户端的行总数,扫描行总数
# root[root]@localhost --执行用户及地址

2.mysqldumpslow使用案例

# 得到返回记录集最多的10个SQL
mysqldumpslow -s r -t 10 /var/lib/mysql/zxy_master-slow.log

# 得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/zxy_master-slow.log

# 得到根据查询时间排序后的前10个SQL
mysqldumpslow -s t -t 10 /var/lib/mysql/zxy_master-slow.log

# 得到根据查询时间排序后,并包含'zxy'的前10个SQL
mysqldumpslow -s t -t 10  -g "zxy" /var/lib/mysql/zxy_master-slow.log

3.2.3 查询日志

  查询日志记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。默认文件名为:hostname.log。

# 1.查询日志未开启
mysql> show variables like 'general_log%';
+------------------+-------------------------------+
| Variable_name    | Value                         |
+------------------+-------------------------------+
| general_log      | OFF                           |
| general_log_file | /var/lib/mysql/zxy_master.log |
+------------------+-------------------------------+
2 rows in set (0.00 sec)

# 2.日志保存类型为table,查询日志存储在mysql.general_log表
mysql> show variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | TABLE |
+---------------+-------+
1 row in set (0.00 sec)

# 3.开启查询日志
mysql> set global general_log = ON;
Query OK, 0 rows affected (0.00 sec)

# 4.查看查询日志
mysql> select * from mysql.general_log\\G;
*************************** 1. row ***************************
  event_time: 2023-01-12 16:56:32.154346
   user_host: root[root] @ localhost []
   thread_id: 1664
   server_id: 1
command_type: Query
    argument: select * from mysql.general_log

  通过上述步骤可以看到,开启查询日志后,当日志存储类型为TABLE的时候,可以直接在mysql.general_log表中查询到。也可以尝试将日志存储类型改为FILE,那么就需要查看/var/lib/mysql/zxy_master.log文件。

以上是关于《MySQL系列-InnoDB引擎15》慢查询日志拓展-mysqldumpslow日志分析工具的主要内容,如果未能解决你的问题,请参考以下文章

《MySQL系列-InnoDB引擎15》慢查询日志拓展-如何开启MySQL慢查询日志?

《MySQL系列-InnoDB引擎15》慢查询日志拓展-如何开启MySQL慢查询日志?

《MySQL系列-InnoDB引擎15》慢查询日志拓展-mysqldumpslow日志分析工具

《MySQL系列-InnoDB引擎15》慢查询日志拓展-mysqldumpslow日志分析工具

《MySQL系列-InnoDB引擎18》文件-日志文件-查询日志

《MySQL系列-InnoDB引擎14》文件-日志文件-错误日志