使用Show Profile进行SQL分析

Show Profile是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量。
默认情况下,参数处于关闭状态,并保持最近15次的运行结果。

Show Profile使用确认

1、是否支持,看看当前MySQL版本是否支持
2、 开启功能,默认是关闭,使用前需要开启

show variables like 'profiling';

在这里插入图片描述
如果是off则需要开启:

set profiling = on;

Show Profile使用

在我们执行一系列sql语句后,可以通过下述语句查看

show profiles;

在这里插入图片描述
然后通过下述的语句进行查看分析

show profile cpu,block io for query 1;

在这里插入图片描述
show 后面的参数可以更改用来查看不同的数据,通过show profiles来觉得自己需要查看那个语句。

参数 功能
all 显示所有的开销信息
block io 显示块IO相关开销
cpu 显示CPU相关开销信息
ipc 显示发送和接收相关开销信息
memory 显示内存相关开销信息
page faults 显示页面错误相关开销信息

参数注意

  1. converting HEAP to MyISAM查询结果太大,内存都不够用了往磁盘上搬
  2. Creating tmp table 创建临时表
  3. Copying to tmp table on disk 把内存中临时表复制到磁盘,危险
    locked
    show profile cpu,block_io for query 3

全局查询日志

开启命令

set global general_log = 1;

将SQL语句写到表中

set global log_output = 'TABLE';

我们所编写的SQL语句,会记录到MySQL库里的genral_log表,我们可通过下述语句来查看

select * from mysql.general_log;
发布了30 篇原创文章 · 获赞 3 · 访问量 2430

猜你喜欢

转载自blog.csdn.net/weixin_45735361/article/details/104115116