Mysql 从 5.0.x 版本开始开始增加对 show profiles 和 show profile 语句的支持,通过查看 having_profiling 参数,可以查看当前 Mysql 是否支持 profile
select @@have_profiling;
Mysql 默认情况下 profiling 是关闭的,可以通过以下命令查询 profiling 的状态
select @@profiling;
0 代表的是关闭,1 代表的是开启,可以命令开启 profiling
set [global] profiling = 1;
global 代表全局,针对所有的会话对象,不带 global 的作用范围是 Session 级别的
需要注意的是,如果设置的是 global 级别,需要重新打开客户端才能看到新设置的值,Session 级别的在当前客户端就实时生效,一般我们都是设置为 Session 级别的
开启 profiling 之后,执行 Sql,然后通过 show profiles 进行查看
当然你还可以通过命令来查询具体的某一条 Sql 的耗时情况
show profile for query Query_ID