如何查看一条sql执行了多长时间以及每个步骤花费的时间呢?
1.登录进mysql的服务
mysql -uroot -p
2.选择数据库
show databases;
use lock;
3.设置profiles,mysql默认只显示sql执行时间小数点后两位,该设置可以提高时间精度
set profiling = 1;
4.执行sql
select * from abc;
5.查看sql执行时间
show profiles;
6.查看sql每个过程所消耗的时间
show profile;
如果是查看时间无法满足需求,还有其他很多参数,参考mysql官网
语法:show profile 参数 for query n
n是在执行show profiles;显示的sql的Query_ID属性
all : 显示所有
block io : 显示io次数
cpu : 显示用户cpu时间,系统cpu时间
context switches : 显示上下文切换次数
例: show profile cpu for query 1
7.查看当前数据库的连接数
show processList;
Id:表示sessionId
User:表示操作的账号
Host:表示操作的主机
db:表示操作的数据库
Command:表示命令类型
Time:表示响应命令执行时间
State:表示命令执行状态
Info: 表示详细的sql语句
8.这里有个小技巧,在使用命令行执行sql语句的时候,同一行数据由于需要显示的列很多以至于换行,看起来不是很方便,这里可以使用“\G”
select * from abc \G;