show profile 分析性能
show profiles 是mysql 5.0.37版本后添加的功能,使用之前必须保证本机mysql版本高于5.0.37.
1.查看mysq版本的方法
mysql>show version()
2.开启 show profile
show profile 在mysql中默认是关闭的,(但是会话级别可以开启这个功能)使用之前应该先开启show profile。开启show profile 可以让mysql收集在执行语句时所使用的资源。
先查看profiling 是否开启,如果没有开启执行下面的语句。
mysql>show variables like 'profiling%'
mysql>set profiling = 1
3.查看sql性能
使用show profiles 查看sql性能之前需要先执行待分析的sql。
sql执行完成后,这个执行语句的剖析信息就会存储到这个会话中,紧接着使用show profile就可进行查看。
mysql>show profile
查询结果中每一行都是一个状态变化的过程和它持续的时长。
show profile 会将最近执行的一条sql 信息查询出来,如果想查看最近执行的多条sql的信息可以使用show profiles;
mysql>show profiles
show profiles 执行结束后会将最近发送给服务器的多条sql执行情况列举出来,想要具体分析其中的一条sql信息可以使用
mysql>show profile for query query_id
注意:show profiles 列举出来的记录条数根据mysql中的会话变量profiling_history_size 值来决定,默认是15条,最大可以设置成为100,当把该值设置成 0时,表示不使用该功能。
4.查看sql执行时其他方面的性能问题,如cpu、io等
type是可选的,取值范围可以如下:
- ALL 显示所有性能信息
- BLOCK IO 显示块IO操作的次数
- CONTEXT SWITCHES 显示上下文切换次数,不管是主动还是被动
- CPU 显示用户CPU时间、系统CPU时间
- IPC 显示发送和接收的消息数量
- MEMORY [暂未实现]
- PAGE FAULTS 显示页错误数量
- SOURCE 显示源码中的函数名称与位置
- SWAPS 显示SWAP的次数
mysql>show profile cpu
或
mysql>show profile cpu for query 2