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 | 显示页面错误相关开销信息 |
参数注意
- converting HEAP to MyISAM查询结果太大,内存都不够用了往磁盘上搬
- Creating tmp table 创建临时表
- 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;