MySQL性能分析
笔记
查看是否开启性能分析
select @@have_profiling;
开启性能分析
开始记录接下来执行的sql的性能:
set profiling=1;// 开启性能分析
接着执行对应的sql
$sql1;
$sql2;
对应sql的简单分析
Query_ID | Duration | Query |
---|---|---|
1 | $second | $sql1 |
2 | $sql2 |
查看具体分析
show profile $checkField for query $Query_ID;
$checkField
的可选参数有:
- All
- BLOCK IO:IO相关开销
- CONTEXT SWITCHES:上下文切换开销
- CPU:CPU相关开销信息
- IPC:发送和接收相关开销
- MEMORY:显示内存相关开销
- PAGE FAULTS:页面错误相关开销信息
- SOURCE:
source_function
,source_file
,source_line
相关的开销信息 - SWAPS:显示交换次数的开销信息
这里会显示该新sql语句在mysql中的执行顺序,并显示以上信息对应的值。
关闭性能分析
set profiling=0;
问题
- 性能分析的具体sql语句是哪些?
- 性能分析能分析哪些信息?
思考
性能分析的对象是一条具体的sql,针对该条sql语句在mysql中执行时,一些内部的值进行读取。