推荐:
参考:
Mysql——》show profile
一、介绍
Show profile是mysql提供的可以用来分析当前会话中语句执行的资源消耗情况的工具。可以用于SQL调优的测量,默认情况下,show profile 参数处于关闭状态,并保存最近15次的运行结果。
二、启用、禁用
profiling是session级变量,session关闭,该session的profiling信息也会丢失。
# 看看当前的mysql版本是否支持
SHOW VARIABLES LIKE 'profiling';
select @@profiling;
# 开启功能,默认是关闭,使用前需要开启
set profiling = on;
三、show profiles
# 展示最近执行的多个SQL的执行耗时情况,显示条数由参数profiling_history_size决定
show profiles;
-- 显示多少条最近执行的sql,默认值为15,最大值为100,最小值为0等同于关闭profiling
show variables like 'profiling_history_size%';
四、show profile
1、语法
SHOW PROFILE
[type [, type] … ]
[FOR QUERY n]
[LIMIT row_count [OFFSET offset]]
type: {
ALL
| BLOCK IO
| CONTEXT SWITCHES
| CPU
| IPC
| MEMORY
| PAGE FAULTS
| SOURCE
| SWAPS
}
n:query id
2、应用
# 展示最近执行的多个SQL的执行情况,显示条数由参数profiling_history_size决定
show profiles;
# 显示最新的一次sql执行情况
show profile;
# 显示第1个sql执行情况
show profile for query 1;
# 显示第n个sql所有性能信息
show profile all for query n;
# 显示块io操作的次数
show profile block io for query n;
# 显示上下文切换次数,被动和主动
show profile context switches for query n;
# 显示用户cpu时间、系统cpu时间
show profile cpu for query n;
# 显示发送和接受的消息数量
show profile ipc for query n;
# 显示页错误数量
show profile page faults for query n;
# 显示源码中的函数名称与位置
show profile source for query n;
# 显示swap的次数
show profile swaps for query n;