使用 profiling 命令可以了解 SQL 语句消耗资源的详细信息(每个执行步骤的开销)。
参考
MySQL 性能优化技巧
查看 profile 开启情况
select @@profiling;
0 表示关闭状态,1 表示开启。
启用 profile
set profiling = 1;
在连接关闭后,profiling 状态自动设置为关闭状态。
查看执行的 SQL 列表
show profiles;
该命令执行之前,需要执行其他 SQL 语句才有记录。
查询指定 ID 的执行详细信息
show profile for query Query_ID;
每行都是状态变化的过程以及它们持续的时间。Status 这一列和 show processlist 的 State 是一致的。
获取 CPU、 Block IO 等信息
show profile block io,cpu for query Query_ID;
show profile cpu,block io,memory,swaps,context switches,source for query Query_ID;
show profile all for query Query_ID;