如是使用 MySQL 的 profiling 功能来获得每条 SQL语句执行所消耗的资源

Profiling 功能在 MySQL5.0.37以及以上版本被支持。在我们启用 profiling的情况下我们可以通过 SHOW PROFILE和 SHOW PROFILES语句来获得当前会话中被执行的语句所消耗的资源。

我们可以通过 SELECT @@profiling; 来获得 profiling的状态。

由于 profiling默认是关闭状态我们首先需要开启 profiling,在开之后,每条SQL语句执行的情况都会被记录,执行 SQL语句开启:
set profiling=1

当我们不需要 profiling时,可以通过执行一下命令关闭:
set profiling=0

在开启 profiling的状态下,我们可以通过执行 show profiles 来列举所有执行过的 SQL语句,通过 show profile 来获得每条被执行 SQL语句的详情。

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-profiling-2
mysql-profiling-2

Post a Comment

Your email is never shared. Required fields are marked *

*
*