前提:MySQL版本支持Show profiles。
1、查询其是否开启:
show VARIABLES like 'profiling';
ON-开启;OFF-关闭。
开启命令:
set global profiling = on;
2、使用:
① 查看所有profile:
show profiles;
② 查看单个的profile开销(query后为上图中的Query_ID):
# 查看cpu和io开销信息
show profile cpu, block io for query 232;
参数说明:
type | 说明 |
---|---|
ALL | 显示所有的开销信息 |
BLOCK IO | 显示块IO相关开销 |
CONTEXT SWITCHES | 上下文切换相关开销 |
CPU | 显示CPU相关开销信息 |
IPC | 显示发送和接口相关开销信息 |
MEMORY | 显示内存相关开销信息 |
PAGE FAULTS | 显示页面错误相关开销信息 |
SOURCE | 显示和Source_function, Source_file, Source_line相关的开销信息 |
SWAPS | 显示交换次数相关开销的信息 |
3、日常开发中需要注意的结论:
① converting HEAP to MyISAM——查询结果过大,内存不够,占用磁盘
② Creating tmp table——创建临时表
③ Copying to tmp table on disk——将内存中临时表复制到磁盘上,危险!
④ locked