数据库优化慢查询日志#3

慢查询日志

什么是慢查询日志

  • MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具

体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。

  • 运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为

10,意思是运行10秒以上的语句。

  • 可以查看哪些SQL超出了我们的最大忍耐时间值,结合之前explain进行全面分析。

怎么用慢查询日志

默认情况下,MySQL 数据库没有开启慢查询日志,需要我们手动来设置这个参数。 一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。 慢查询日志支持将日志记录写入文件。

慢查询相关语句:

语句作用/描述
SHOW VARIABLES LIKE '%slow_query_log%'

查看慢查询日志是否开启,默认off,

禁用,和日志的文件路径

SET GLOBAL slow_query_log=1

开启慢查询日志功能,重启就失效了,

要永久生效就要修改配置文件

SHOW VARIABLES LIKE 'long_query_time'查看慢查询阈值(单位秒)
SET GLOBAL long_query_time=5

设置慢查询阈值(单位秒)

修改完要重开链接,或者新开会话才能使用查询命令查询到

 

日志分析工具 mysqldumpslow

查看mysqldumpslow 帮助信息

mysqldumpslow  --help

参数作用
-s表示按照什么方式牌排序
c访问次数
l锁定时间
r返回记录
t查询时间
al平均锁定时间

ar

平均返回记录
at平均查询时间
-t

返回前面多少条记录

-g后边跟个正则表达式匹配模式,大小写不敏感

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

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log

得到访问次数最多的 10 SQL

mysqldumpslow -s c -t 10 /var/lib/mysql/atguigu-slow.log

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

mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/atguigu-slow.log

另外建议在使用这些命令时结合 | more 使用 ,否则有可能出现爆屏情况

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more

 mysql 进程列表

  1. 查看mysql进程列表SHOW PROCESSLIST
  2. 杀死对应进程:kill 进程号

 

show profile

Mysql从5.0.3版本开始增加了对show profiles和show profile的支持,show profile能够帮我们了解在sql语句执行过程中时间耗费在了哪些地方

//TODO

怎么用

全局查询日志

怎么用

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值