5.8.1.2 命令探针

命令探针在执行 Client 端命令之前和之后执行,包括在此期间可能执行的所有 SQL 语句。命令包括诸如数据库初始化,使用COM_CHANGE_USER操作(由 MySQL 协议支持)以及对准备好的语句的操作等操作。这些命令中的许多命令仅由 MySQLClient 端 API 通过各种连接器(如 PHP 和 Java)使用。

command-start(connectionid, command, user, host)
command-done(status)
  • command-start:将命令提交到服务器时触发。

  • connectionid:执行命令的 Client 端的连接 ID。

    • command:table 示执行的命令的整数。可能的值如下 table 所示。
ValueNameDescription
00COM_SLEEP内螺纹状态
01COM_QUITClose connection
02COM_INIT_DB选择数据库(USE ...)
03COM_QUERY执行查询
04COM_FIELD_LIST获取字段列 table
05COM_CREATE_DB创建一个数据库(不推荐使用)
06COM_DROP_DB删除数据库(不建议使用)
07COM_REFRESHRefresh connection
08COM_SHUTDOWNShutdown server
09COM_STATISTICSGet statistics
10COM_PROCESS_INFO获取流程(SHOW PROCESSLIST)
11COM_CONNECTInitialize connection
12COM_PROCESS_KILLKill process
13COM_DEBUG获取调试信息
14COM_PINGPing
15COM_TIME内螺纹状态
16COM_DELAYED_INSERT内螺纹状态
17COM_CHANGE_USERChange user
18COM_BINLOG_DUMP由复制从属或mysqlbinlog用于启动二进制日志读取
19COM_TABLE_DUMP复制从属服务器用来获取主 table 信息
20COM_CONNECT_OUT复制从属服务器用于记录与服务器的连接
21COM_REGISTER_SLAVE在注册期间由复制从属使用
22COM_STMT_PREPARE准备一份声明
23COM_STMT_EXECUTE执行语句
24COM_STMT_SEND_LONG_DATA在请求扩展数据时由 Client 端使用
25COM_STMT_CLOSE关闭准备好的语句
26COM_STMT_RESET重置准备好的语句
27COM_SET_OPTION设置服务器选项
28COM_STMT_FETCH获取准备好的语句
  • user:执行命令的用户。

  • host:Client 端主机。

  • command-done:命令执行完成时触发。如果命令成功执行,则status参数包含 0;如果该语句在正常完成之前被终止,则status参数包含 1.

与语句探针结合使用时,最好使用command-startcommand-done探针,以了解整体执行时间。