5.8.1.6 查询执行探针
当查询的实际执行开始时,在解析和检查查询缓存之后,但在任何特权检查或优化之前,都会触发查询执行探针。通过比较开始探针和完成探针之间的差异,您可以监视为查询实际花费的时间(而不仅仅是处理查询的解析和其他元素)。
query-exec-start(query, connectionid, database, user, host, exec_type)
query-exec-done(status)
Note
query-start
和query-exec-start
的参数中提供的信息几乎完全相同且经过精心设计,因此您可以选择在显示有关用户,Client 端,和正在执行的查询。
-
query-exec-start
:在开始执行单个查询时触发。参数为: -
query
:提交的查询的全文。-
connectionid
:提交查询的 Client 端的连接 ID。连接 ID 等于 Client 端首次连接时返回的连接 ID 和SHOW PROCESSLIST的输出中的Id
值。 -
database
:要在其上执行查询的数据库名称。 -
user
:用于连接服务器的用户名。 -
host
:Client 端的主机名。 -
exec_type
:执行的类型。执行类型是根据查询的内容和提交位置确定的。下 table 显示了每种类型的值。
-
Value | Description |
---|---|
0 | 从 sql_parse 的顶级查询中执行的查询。 |
1 | 执行准备好的语句 |
2 | 执行的游标语句 |
3 | 在存储过程中执行查询 |
query-exec-done
:查询执行完成时触发。该探针包括单个参数status
,当成功执行查询时返回_2,如果发生错误则返回 1.