mysql数据库操作慢日志_mysql数据库慢查询日志配置与分析

一、什么是慢查询日志?

慢查询日志官方给出的理解太费劲了,本博主,按照日常思维进行一下讲解吧,慢查询日志顾名思义,就是查询慢的日志记录啊,我们在数据库中的增删改查等操作,如果执行时间超过了数据库中慢查询设置的默认查询时间之后,就会把这些执行较慢的sql记录到日志中,像这样的日志叫做慢查询日志。这么一说,大家应该比较好理解了吧,哈哈。

二、慢查询有哪些参数配置?

MySQL 慢查询的相关参数解释:slow_query_log :是否开启慢查询日志,on表示开启,0ff表示关闭

1、slow_query_log

是否开启慢查询日志,1表示开启,0表示关闭。

三、慢查询日志在哪里查?

1、首先我们需要先查看下数据库中的配置中是否开启了慢查询并且将慢查询日志输出到哪里了,要不然鬼才知道它在哪里呢?具体的查看方法如下:

(1)登录mysql数据库,mysql -uroot -p -hxxxx

(2)查看慢查询是否开启:

默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启,如下所示:

mysql> show variables like '%slow_query_log%';

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

| Variable_name | Value |

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

| slow_query_log | OFF |

| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |

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

2 rows in set (0.00 sec)

mysql> set global slow_query_log=1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%slow_query_log%';

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

| Variable_name | Value |

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

| slow_query_log | ON |

| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |

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

2 rows in set (0.00 sec)

#使用set global slow_query_log=1开启了慢查询日志只对当前数据库生效,MySQL重启后则会失效。如果要永久生效,就必须修改配置文件my.cnf(其它系统变量也是如此),下面的操作我们在my.cnf中添加

(3)开启慢查询并设置存储方式:

slow_query_log =1

log_output = file

(4)自定义设置慢查询存储的路径

slow_query_log_file=/data/mysql/mysql-slow.log

(5)自定义设置慢查询请求时间的配置为1s

long_query_time = 1

(6)重启mysql服务器之后查看参数是否设置成功

/etc/init.d/mysqld restart

使用以下方式进行查看即可:

show variables like '参数名称';

四、使用mysqldumpslow来分析慢查询日志

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

[root@localhost~]# mysqldumpslow --help

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

Parse and summarize the MySQL slow query log. Options are--verbose verbose--debug debug--help writethis 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 locktime

ar: average rows sent

at: average querytimec: count

l: locktimer: rows sent

t: querytime

-r reverse the sort order (largest lastinstead 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 (ifusing mysql.server startup script)-l don't subtract lock time from total time

mysqldumpslow--help

mysqldumpslow --help

-s, 是表示按照何种方式排序

比如:

mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值