加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何使用 mysqldumpslow 这个工具

发布时间:2023-10-20 13:23:05 所属栏目:MySql教程 来源:
导读:小编给大家分享一下mysqldumpslow工具怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mysqldumpslow工具开启慢查询查看慢查询相关参数slow_query_log:慢查询是否开启slow_query_log_file:

小编给大家分享一下mysqldumpslow工具怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

mysqldumpslow工具

开启慢查询

查看慢查询相关参数

slow_query_log:慢查询是否开启

slow_query_log_file:慢查询文件位置

long_query_time:超过多长时间记录

log_queries_not_using_indexes:没有使用索引的sql

mysql> show variables like 'slow_query%';

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

| Variable_name    | Value           |

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

| slow_query_log   | ON             |

| slow_query_log_file | /var/lib/mysql/db-slow.log |

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

2 rows in set (0.01 sec)

mysql> show variables like 'long_query_time';   

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

| Variable_name  | Value  |

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

| long_query_time | 2.000000 |

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

1 row in set (0.00 sec)

mysql> show variables like 'log_queries_not%';

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

| Variable_name         | Value |

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

| log_queries_not_using_indexes | OFF  |

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

1 row in set (0.00 sec)

设置方法

方法1:全局变量设置

mysql> set global slow_query_log='ON'; 

mysql> set global slow_query_log_file='/var/lib/mysql/db-slow.log';

mysql> set global long_query_time=2;

mysql> set global log_queries_not_using_indexes=1;

方法2:配置文件设置

修改配置文件my.cnf在[mysqld]下加入如下内容

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/db-slow.log 

long_query_time = 2

log_queries_not_using_indexes=1

修改后重启mysql服务

测试

mysql> select sleep(3); 

[root@db ~]# tail -f /var/lib/mysql/db-slow.log

# Time: 2018-12-25T08:00:48.199670Z

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

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

SET timestamp=1545724848;

select sleep(3);

[root@db ~]# mysqldumpslow --help

Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]

Parse and summarize the MySQL slow query log. Options are

 --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: 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

 -a      don't abstract all numbers to N and strings to 'S'

 -n NUM    abstract numbers with at least n digits within names

 -g PATTERN  grep: only consider stmts that include this string

 -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),

        default is '*', i.e. match all

 -i NAME   name of server instance (if using mysql.server startup script)

 -l      don't subtract lock time from total time

常用参数

-s 排序方式 后面跟排序列 

al 平均锁定时间

ar 平均返回记录时间

at 平均查询时间(默认)

c 计数

l 锁定时间

r 返回记录

t 查询时间

-r 反向排序,最大的在最后

-t 后面跟数字,返回行数

-a 不将所有的数字抽象为N,字符串抽象为S

-n 后面跟数字,在名称中至少有n个数字抽象为数字

-g 正则后边可以写一个正则匹配模式,大小写不敏感的

案例:

1.根据计数返回5条记录

mysqldumpslow -s c -t 5 /var/lib/mysql/db-slow.log

2.根据返回记录返回5条记录

mysqldumpslow -s r -t 5 /var/lib/mysql/db-slow.log

3.根据查询时间返回5条记录

mysqldumpslow -s t -t 5 /var/lib/mysql/db-slow.log

4.根据计数统计,不抽象数字及字符串

mysqldumpslow -s c -a -t 5 /var/lib/mysql/db-slow.log

看完了这篇文章,相信你对“mysqldumpslow工具怎么用”有了一定的了解,如果想了解更多相关知识,感谢各位的阅读!

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章