开启MySQL慢查询及分析工具

1.慢查询的作用:帮我们找到执行慢的SQL语句,方便我们对SQL语句进行优化
2.慢查询日志的文件增长非常长,生产环境建议及时清理,一天可能会达到几G或者更多
3.日志可以说明大部分问题,但不是说明一切问题,可能跟锁表、系统繁忙的偶发性有关。当然,某条SQL语句经常查询慢那基本是可以再次优化的

  • 通过命令开启慢查询日志
// 查询是否开启慢查询 ON OR OFF
show variables like 'log_slow_queries'
// 查询是否开启慢查询日志 ON OR OFF
show variables like 'show_query_log'
// 指定慢查询日志的存储位置 目录要具有写权限
set global show_query_log_file = '/home/mysql/sql_log/mysql-slow.log'
// 把没有使用索引的sql记录到慢查询日志中 如果table的数据量小,不建议开启该条设置,因为会记录所有没有用到索引的查询,会给日志填充很多垃圾信息
set global log_queries_not_using_indexes = on;
// 超过1秒钟查询记录到慢查询日志中
set global long_query_time = 1;
  • 通过my.ini开启慢查询日志(原理和用命令一样),不过配置完成需要重启MySQL
目录要具有写权限
log-slow-queries = '/home/mysql/sql_log/mysql-slow.log'
// 在windows的情况下需要绝对路径
log-slow-queries = 'C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-slow.log'
long_query_time = 1
log-queries-not-using-indexes = on
  • 慢查询日志所包含的内容
// 执行SQL的主机信息:ROOT用户在本地所执行的查询
# User@Host: root['root'] @ localhost []
// SQL的执行信息 查询时间、锁定时间、发送行数、扫描行数
# Query_time:0.000024 Lock_time:0.0000000 Rows_sent:0 Rows_examined:0
// SQL执行时间 时间戳
# SET timestamp = 1402389328;
// SQL的内容
# select CONCAT('storage engine:',@@storage_engine) as INFO;
  • 慢查询日志分析工具
    工具1:mysqldumpslow(官方工具) 一般集成在MySQL安装包中
    直接使用mysqldumpslow命令即可使用

    工具2:pt-query-digest工具
    输入命令系统提示没有的话可以查找安装一下

    工具3:自己写脚本将日志中的语句列出来,通过网页的形式查看
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值