mysql 5.0中的profile功能

在MYSQL的5.0.37版本以上,支持profile的功能;
小结如下:
show profile 的格式如下:

SHOW PROFILE [type [, type] … ]
    [FOR QUERY n]
    [LIMIT row_count [OFFSET offset]]

type:
    ALL
  | BLOCK IO
  | CONTEXT SWITCHES
  | CPU
  | IPC
  | MEMORY
  | PAGE FAULTS
  | SOURCE
  | SWAPS

默认方式下该功能是关闭的:

mysql>select @@profiling;

+————-+
| @@profiling |
+————-+
|           0 |
+————-+
1 row in set (0.00 sec)

打开功能

mysql>set profiling=1;

+————-+
| @@profiling |
+————-+
|           1 |
+————-+
1 row in set (0.00 sec)

输入需要执行的sql 语句:

mysql>select count(*) from table;

mysql> show profiles\G;


通过指定的Query_ID 来查询指定的sql语句的执行信息:

mysql> show profile for query 1;

+——————————–+———-+
| Status                         | Duration |
+——————————–+———-+
| starting                       | 0.000028 |
| checking query cache for query | 0.000008 |
| checking privileges on cached  | 0.000009 |
| sending cached result to clien | 0.000023 |
| logging slow query             | 0.000004 |
| cleaning up                    | 0.000003 |
+——————————–+———-+
6 rows in set (0.00 sec)

mysql> show profile cpu,block io for query 1;
+——————————–+———-+———-+————+————–+—————+
| Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+——————————–+———-+———-+————+————–+—————+
| starting                       | 0.000028 |     NULL |       NULL |         NULL |          NULL |
| checking query cache for query | 0.000008 |     NULL |       NULL |         NULL |          NULL |
| checking privileges on cached  | 0.000009 |     NULL |       NULL |         NULL |          NULL |
| sending cached result to clien | 0.000023 |     NULL |       NULL |         NULL |          NULL |
| logging slow query             | 0.000004 |     NULL |       NULL |         NULL |          NULL |
| cleaning up                    | 0.000003 |     NULL |       NULL |         NULL |          NULL |
+——————————–+———-+———-+————+————–+—————+
6 rows in set (0.00 sec)

如果不带for 参数则指列出最后一条语句的profile 信息:

mysql> show profile cpu,block io for query 1;
+——————————–+———-+———-+————+————–+—————+
| Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+——————————–+———-+———-+————+————–+—————+
| starting                       | 0.000028 |     NULL |       NULL |         NULL |          NULL |
| checking query cache for query | 0.000008 |     NULL |       NULL |         NULL |          NULL |
| checking privileges on cached  | 0.000009 |     NULL |       NULL |         NULL |          NULL |
| sending cached result to clien | 0.000023 |     NULL |       NULL |         NULL |          NULL |
| logging slow query             | 0.000004 |     NULL |       NULL |         NULL |          NULL |
| cleaning up                    | 0.000003 |     NULL |       NULL |         NULL |          NULL |
+——————————–+———-+———-+————+————–+—————+
6 rows in set (0.00 sec)

关闭参数:

mysql> set profiling=0

+—————+——-+
| Variable_name | Value |
+—————+——-+
| profiling     | OFF   |
+—————+——-+
1 row in set (0.00 sec)

你可能感兴趣的:(sql,mysql,cache,UP)