show variables like ‘profiling%‘; 查看 Show Profile 是否开启
set profiling=on;
开启 Show Profile
set
profiling_history_size=150;设置显示条数默认15
使用步骤;
1.执行SQL
2.通过 show profiles; 指令查看结果
3.show profile cpu, block io for query SQL编号;
4.参数
- 参数备注:
- 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:创建临时表,mysql 先将拷贝数据到临时表,然后用完再将临时表删除
- Copying to tmp table on disk:把内存中临时表复制到磁盘,危险!!!
- locked:锁表