7.mysql慢查询

什么是慢查询

慢查询日志,顾名思义,就是查询慢的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。

 

慢查询基本配置

  1. slow_query_log 启动停止技术慢查询日志
  2. slow_query_log_file 指定慢查询日志得存储路径及文件(默认和数据文件放一起)
  3. long_query_time 指定记录慢查询日志SQL执行时间得伐值(单位:秒,默认10秒)
  4. log_queries_not_using_indexes  是否记录未使用索引的SQL
  5. log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】

配置了慢查询后,它会记录符合条件的SQL

包括:

  1. 查询语句
  2. 数据修改语句
  3. 已经回滚得SQL

实操:

通过下面命令查看下上面的配置:

show VARIABLES like '%slow_query_log%'

show VARIABLES like '%slow_query_log_file%'

show VARIABLES like '%long_query_time%'

show VARIABLES like '%log_queries_not_using_indexes%'

show VARIABLES like 'log_output'

set global long_query_time=0;   ---默认10秒,这里为了演示方便设置为0

set GLOBAL  slow_query_log = 1; --开启慢查询日志

set global log_output='FILE,TABLE'  --项目开发中日志只能记录在日志文件中,不能记表中

设置完成后,查询一些列表可以发现慢查询的日志文件里面有数据了。

超过0秒的查询,就会在这记录,就可以看到这个sql,看有没有必要需要优化的空间咯

cat /usr/local/mysql/data/mysql-slow.log

慢查询分析工具

常用的慢查询日志分析工具,汇总除查询条件外其他完全相同的SQL,并将分析结果按照参数中所指定的顺序输出。

1.Mysqldumpslow

语法:

mysqldumpslow -s r -t 10 slow-mysql.log

-s order (c,t,l,r,at,al,ar)

         c:总次数

         t:总时间

         l:锁的时间

         r:总数据行

         at,al,ar  :t,l,r平均数  【例如:at = 总时间/总次数】

  -t  top   指定取前面几天作为结果输出

mysqldumpslow -s t -t 10

/usr/local/mysql/data/mysql-slow.log

2.pt_query_digest

是用于分析mysql慢查询的一个工具,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。

有时因为某些原因如权限不足等,无法在服务器上记录查询。这样的限制我们也常常碰到

首先来看下一个命令

Yum -y  install 'perl(Data::Dumper)';

yum -y install perl-Digest-MD5

yum -y install perl-DBI

yum -y install perl-DBD-MySQL

perl ./pt-query-digest  --explain h=127.0.0.1,u=root,p=root1234%  /usr/local/mysql/data/mysql-slow.log

 

汇总的信息【总的查询时间】、【总的锁定时间】、【总的获取数据量】、【扫描的数据量】、【查询大小】

Response: 总的响应时间。

time: 该查询在本次分析中总的时间占比。

calls: 执行次数,即本次分析总共有多少条这种类型的查询语句。

R/Call: 平均每次执行的响应时间。

Item : 查询对象

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值