MySQL配置慢查询日志及使用说明

注意:

1.设置慢查询日志配置的账号需要数据库root账号登录

2.必须让mysql用户对慢查询日志有可写(w=2),上级目录可执行(x=1)的权限,否则无法开启慢查询日志

3.开启了慢查询日志会记录所有数据库符合条件的SQL 

配置参数:

long_query_time:执行时间,单位 秒。设置时不需加单位s

slow_query_log_file:慢查询日志保存目录,设置时目录路径需要加引号''

slow_query_log:开关慢查询;ON 开启;OFF关闭

log_query_not_using_indexse: 记录所有未使用索引的SQL;ON 开启;OFF关闭

查看:

# show variables like '参数名';

设置:

# set global 参数名=xx;

使用:

1.# more/cat 慢查询日志名

没有执行次数

用more命令,按空格翻下页浏览。直接浏览不会过滤掉同类型重复执行的SQL

属性:

Time:SQL什么时候执行的

User@Host:数据库用户名@客户端ip

Query_time:SQL执行时间

Lock_time:锁时间

Rows_sent:执行成功后返回的行数

Rows_examined:检索行数

(精度保留到小数点后6位,单位秒)

最下面的是执行的SQL语句

使用MySQL自动的mysqldumpslow工具(mysql安装目录/bin/mysqldumpslow)或pt-query-digest工具(下载安装percona),浏览时可自动过滤掉重复的SQL

percona下载安装说明:https://blog.csdn.net/qq_41912505/article/details/103804591

2.# mysqldumpslow 慢查询日志名

没有检索行数

 属性:

Count:执行次数

Time:执行时间的最大值(总执行时间)

Lock:锁时间的最大值(总锁时间)

Rows:返回的最大行数(总返回行数)

数据库用户名@客户端ip

最下面是执行的SQL语句

3.# pt-query-digest 慢查询日志名

属性:

Query:第几条SQL

Count:执行次数

Exec time:执行时间

Lock time:锁时间

Row sent:返回行数

Row examine:检索行数

(pct:占总慢查询比例;total:总和;min:最小;max:最大;avg:平均;95%:大部分;median:中间值)

Databases:数据库

Hosts:客户端

Users:数据库用户

Query_time distribution:执行时间分布

Tables:表

EXPLAIN:执行计划

最下面是执行的SQL语句

主优化:执行次数多,且检索行数远大于返回行数的SQL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值