开启MySQL慢查询以及慢查询日志使用

目录

要开启慢查询,需要关注这几个参数

打开慢查询日志

把日志文件存储在文件中

模拟慢查询

如何寻找并查看慢查询日志

 把日志文件存储在表中:

 其他关注参数

log_slow_admin_statements

 Slow_queries

在生产环境中:mysqldumpslow工具分析慢查询

得到返回记录集最多的10个SQL。

得到访问次数最多的10个SQL

得到按照时间排序的前10条里面含有左连接的查询语句。

建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。


要开启慢查询,需要关注这几个参数

# 开启慢查询关注这几个参数
# 是否开启慢查询:0关1开
show VARIABLES LIKE '%slow_query_log%';
# 慢查询日志存储路径
show VARIABLES LIKE '%slow_query_log_file%';
# 慢查询阈值,超过多长时间记录
show VARIABLES LIKE '%long_query_time%';
# 未使用到索引的sql也记录
show VARIABLES LIKE '%log_queries_not_using_indexes%';
# 日志存储方式:FILE:日志存储文件、TABLE:日志存入数据库
show VARIABLES LIKE '%log_output%';

查询结果

slow_query_log    ON

slow_query_log_file    LAPTOP-RVFQOG0R-slow.log

long_query_time    10.000000

log_queries_not_using_indexes    OFF

log_output    FILE

打开慢查询日志

把日志文件存储在文件中

注意:修改long_query_time之后,要重新打开一个查询才能看到修改之后的值

# 开启慢查询日志\mysql重启后会失效
set global slow_query_log=1
# 时间单位是秒,修改之后,要重新连接mysql才能看到修改值
set global long_query_time=3
# 记录未使用索引的sql,根据需要开启
set global log_queries_not_using_indexes=1
# 把日志记录到文件,和下面设置二选一
set global log_output='FILE'
# 把日志记录到表
set global log_output='TABLE'

模拟慢查询

SELECT SLEEP(5);

如何寻找并查看慢查询日志

由于 show VARIABLES LIKE '%slow_query_log_file%'; 查询到的结果只有个文件名,并没有完整路径,所以使用下面的查询获取完整路径

show VARIABLES like 'datadir';
# 慢查询日志存储路径
show VARIABLES LIKE '%slow_query_log_file%';

 

 把结果拼接起来,就是完整的地址了:C:\ProgramData\MySQL\MySQL Server 8.0\Data\LAPTOP-RVFQOG0R-slow.log

打开日志文件,查看慢sql

 把日志文件存储在表中:

set global log_output='TABLE';

查询结果:

 其他关注参数

log_slow_admin_statements

是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志。

show variables like 'log_slow_admin_statements';

 Slow_queries

查询有多少条慢记录

show global status like '%Slow_queries%';

 

在生产环境中:mysqldumpslow工具分析慢查询

在生产环境中,日志文件过多,借助工具来分析

得到返回记录集最多的10个SQL。

mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

得到按照时间排序的前10条里面含有左连接的查询语句。

mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log

建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值