mysql性能分析,慢查询日志分析工具:mysqldumpslow, 统计SQL的查询成本,查看性能参数

方法一

1、查看profiling是否开启

select @@profiling;

0代表没有开启 1代表开启

设置命令是

set profileing=1

2、然后我们进行一个sql语句的查询

3、查看当前会话所产生的所有 profiles:

show profiles;#查看最近一次
 
 
show profile for query 14; # 查询指定的 Query ID
 
 
show profile cpu,block io for query 14;#更丰富的查询


#ALL:显示所有的开销信息。
#BLOCK IO:显示块IO开销。
# CONTEXT SWITCHES:上下文切换开销。
# CPU:显示CPU开销信息。
# IPC:显示发送和接收开销信息。
# MEMORY:显示内存开销信息。 
# PAGE FAULTS:显示页面错误开销信息。
# SOURCE:显示和Source_function,Source_file, Source_line相关的开销信息。
# SWAPS:显示交换次数开销信息。


#converting HEAP to Myisam   #查询结果太大 内存不够
# creating tmp table  创建临表  先拷贝数据到临时表
copying to tmp  table on disk   把内存中临时表复制到磁盘上
locked
如果show profile出现以上4个一个 则sql需要优化






方法二

查看系统性能参数

show [global | session] status like '参数' # global全局  session 当前会话
#常见参数
#Connections:连接MySQL服务器的次数。 
#Uptime:MySQL服务器的上线时间。
#Slow_queries:慢查询的次数。
#Innodb_rows_read:Select查询返回的行数
#Innodb_rows_inserted:执行INSERT操作插入的行数 
#Innodb_rows_updated:执行UPDATE操作更新的行数 
#Innodb_rows_deleted:执行DELETE操作删除的行数
#Com_select:查询操作的次数。
#Com_insert:插入操作的次数。对于批量插入的 INSERT 操作,只累加一次。
#Com_update:更新操作的次数。
#Com_delete:删除操作的次数。



show status like '%Innodb_rows_%' #查看增删改查 操作返回的行数

sql成本的查询    last_query_cost

SHOW STATUS LIKE 'last_query_cost';

定位执行慢的sql  慢查询日志

 global全局  session 当前会话


#查询慢日志的参数看是否开启
show VARIABLES like '%slow_query_log%'
#没有开启的话
set GLOBAL slow_query_log='on'
#查看时间的阀值
show VARIABLES like '%long_query_time%'
#修改时间阀值设置global的方式对当前session的long_query_time失效。对新连接的客户端有效。所以可以一并 执行下述语句
set global long_query_time = 1; 
show global variables like '%long_query_time%'; 
set long_query_time=1; 
show variables like '%long_query_time%';

#查看当前慢查询多少条
SHOW GLOBAL STATUS LIKE '%Slow_queries%'; 

慢查询的分析工具 mysqldumpslow

 

-a: 不将数字抽象成N,字符串抽象成S
-s: 是表示按照何种方式排序:
  c: 访问次数
  l: 锁定时间
  r: 返回记录
t: 查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均查询时间 (默认方式)
ac:平均查询次数
-t: 即为返回前面多少条的数据;
-g: 后边搭配一个正则匹配模式,大小写不敏感的;
 
#得到返回记录集最多的10个SQL
 mysqldumpslow -s r -t 10 /var/lib/mysql/文件.log

#得到访问次数最多的10个SQL
 mysqldumpslow -s c -t 10 /var/lib/mysql/文件.log

#得到按照时间排序的前10条里面含有左连接的查询语句 
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/文件.log 

#另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现爆屏情况 
mysqldumpslow -s r -t 10 /var/lib/mysql/文件 | more

等  第三种见下面

https://blog.csdn.net/qq_41486847/article/details/123346839icon-default.png?t=M1L8https://blog.csdn.net/qq_41486847/article/details/123346839

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值