mysql使用profiles

如何查看一条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;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容