一、介绍
SHOW PROFILE
和SHOW PROFILE
S
是mysql自带的一种性能分析工具,表示当前会话过程中执行的语句资源使用信息。
注意:SHOW PROFILE
和SHOW PROFILE
S
,在以后的版本就被取消了,改为 :Performance Schema
执行语句格式:
SHOW PROFILE [type [, type] ... ]
[FOR QUERY n]
[LIMIT row_count [OFFSET offset]]
type: {
ALL : 显示所有性能信息
| BLOCK IO:显示块io操作的次数
| CONTEXT SWITCHES:显示上下文切换次数,被动和主动
| CPU:显示用户cpu时间、系统cpu时间
| IPC:显示发送和接受的消息数量
| MEMORY:暂未实现
| PAGE FAULTS:显示页错误数量
| SOURCE:显示源码中的函数名称与位置
| SWAPS:显示swap的次数
}
二、操作步骤
1、查看当前mysql版本是否支持:
mysql> SELECT @@profiling;
+-----------------+
| @@profiling |
+-----------------+
| 1 |
+-----------------+
2、show profile默认是被禁止,需要修改profiling 值设为1或NO
mysql> set profiling = 1
3、执行需要监测的SQL语句,比如:
mysql> select * from city;
+---------+----------------------------+------------+---------------------+
| city_id | city | country_id | last_update |
+---------+----------------------------+------------+---------------------+
| 1 | A Corua | 87 | 2006-02-15 04:45:25 |
| 2 | Abha | 82 | 2006-02-15 04:45:25 |
+---------+----------------------------+------------+---------------------+
4、SHOW PROFILE
显示有关单个语句的详细信息。如果没有该子句,则输出与最近执行的语句有关。如果 包含,则显示语句的信息。的值对应于所显示的 值 。 SHOW PROFILE FOR QUERY 1
mysql> show profile;
+-----------------------------+----------+
| Status | Duration |
+-----------------------------+----------+
| starting | 0.000113 |
| checking permissions | 0.000009 |
| Opening tables | 0.000028 |
| init | 0.000048 |
| System lock | 0.000011 |
| optimizing | 0.000010 |
| statistics | 0.000020 |
| preparing | 0.000022 |
| executing | 0.000004 |
| Sending data | 0.000338 |
| end | 0.000010 |
| query end | 0.000008 |
| closing tables | 0.000008 |
| freeing items | 0.000026 |
| cleaning up | 0.000031 |
+---------------------------+----------+
5、SHOW PROFILES
显示发送到服务器的最新语句的列表。
mysql> show profiles;
+--------------+----------------+---------------------------------------------------------+
| Query_ID | Duration | Query |
+--------------+----------------+---------------------------------------------------------+
| 1 | 0.00068450 | select * from city where city = 'Zaoyang' |
| 2 | 0.00131575 | select * from city |
+--------------+---------------+----------------------------------------------------------+
注意具体案例请参考:https://dev.mysql.com/doc/refman/5.7/en/show-profile.html(mysql5.7版本)