show profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具。
1.查看Show Profile开启情况:
show variables like 'profiling'
mysql截图
(默认是关闭的)
2.开启show profile:
set profiling = on
开启show profiling
3.运行测试SQL语句:
show databases;
use liaotian;
show tables;
select 123;
select sleep(1);
4.通过show profiles查看结果:
show profiles;
结果截图
(默认是15条)
5.分析具体SQL语句:
show profile [option] for query num
1.option:
ALL:显示所有的开销信息。
BLOCK IO:显示块IO开销。
CONTEXT SWITCHES:上下文切换开销。
CPU:显示CPU开销信息。
IPC:显示发送和接收开销信息。
MEMORY:显示内存开销信息。
PAGE FAULTS:显示页面错误开销信息。
SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息。
SWAPS:显示交换次数开销信息。
2.num:
show profiles 显示出的SQL语句的query_id
6.show profile注意事项:
如果存在如下信息则需要我们注意我们的SQL语句:
1.converting HEAP to MyISAM:查询结果太大,内存不够,数据往磁盘上搬了。
2.Creating tmp table:创建临时表。先拷贝数据到临时表,用完后再删除临时表。
3.Copying to tmp table on disk:把内存中临时表复制到磁盘上,危险!!!
4.locked。
网友评论