MySQL性能分析命令

服务性能简介

三个性能服务请求

  • 如何确认服务器是否达到了性能最佳状态
  • 找出某条sql语句执行慢的原因
  • 诊断被用户描述成“停顿”,“堆积”或者是“卡死”的间歇性疑难故障.

性能定义

  • 为完成某件任务所需要的时间度量,换言之,性能即响应时间,这是一个非常重要的原则.

SQL性能分析

  • 执行分析 - 基于执行时间的分析
  • 等待分析 - 基于等待时间的分析
SQL性能优化

在一定的工作负载下尽可能地降低响应时间,在SQL服务器中定义的吞吐量指标为单位时间内的查询量.

性能优化工具

慢查询日志是一种轻量而且功能全面的性能剖析功能,优化服务器查询的利器.

  • 通过--processlist查看记录出现的时间和消失的时间
show full processlist
  • 通过TCP网络抓包
tcpdump -i lo -l port 3306 -w lo.pcap | strings
tcpdump host mysql_ip and port mysql_port

开启binlog慢日志查询

## 查看mysql所有的日志信息的状态以及对应存储的位置
show variables like '%log%';

## 查看bin log是否开启
show variables like 'log_bin';

## 查看mysql的版本,我的当前为5,7
show variables like '%version%';

## 启用bin log
## /etc/mysql/mysql.conf.d/mysqld.cnf
server_id         =  1   # 随机数,集群中要保证唯一
log_bin			= /var/log/mysql/mysql-bin.log
max_binlog_size  = 100M
binlog_do_db = include_database_name

## 重启服务
service mysql start

## 再次查看bilog是否生效
show variables like 'log_bin';

查看binlog

/usr/bin/mysqlbinlog --base64-output=DECODE-ROWS -v /var/log/mysql/mysql-bin.000001

参考

参考: https://blog.51cto.com/lookingdream/1921162

单条SQL查询性能分析

## 在mysql5之后可以通过profile来启用分析
## 查看是否启用
show variables like '%profil%';

## 设置启用
set profiling=1;

## 查看启用结果
show variables like '%profil%';

## 查看sql的执行性能
show profiles;

## 根据上述的结果获取queryId
show profile for query queryId;

## 格式化输出
set @query_id = 1;
select state, sum(duration) as total_r, round(100 * sum(duration) / (select sum(duration) from information_schema.profiling where query_id=@query_id ), 2) as pct_r, count(*) as calls, sum(duration) / count(*) as "R/Call" from information_schema.profiling where query_id = @query_id group by state order by total_r desc;

上述的执行输出结果如下:
在这里插入图片描述

非性能分析工具的show status

mysql的show status命令返回一些计数器,既有服务器级别的计数器,也有基于某个连接会话级别的计数器.可以查看服务器级别的从服务器启动开始计算的查询次数统计

截取部分结果图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疾风先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值