5.8.1.6 查询执行探针

当查询的实际执行开始时,在解析和检查查询缓存之后,但在任何特权检查或优化之前,都会触发查询执行探针。通过比较开始探针和完成探针之间的差异,您可以监视为查询实际花费的时间(而不仅仅是处理查询的解析和其他元素)。

query-exec-start(query, connectionid, database, user, host, exec_type)
query-exec-done(status)

Note

query-startquery-exec-start的参数中提供的信息几乎完全相同且经过精心设计,因此您可以选择在显示有关用户,Client 端,和正在执行的查询。

  • query-exec-start:在开始执行单个查询时触发。参数为:

  • query:提交的查询的全文。

    • connectionid:提交查询的 Client 端的连接 ID。连接 ID 等于 Client 端首次连接时返回的连接 ID 和SHOW PROCESSLIST的输出中的Id值。

    • database:要在其上执行查询的数据库名称。

    • user:用于连接服务器的用户名。

    • host:Client 端的主机名。

    • exec_type:执行的类型。执行类型是根据查询的内容和提交位置确定的。下 table 显示了每种类型的值。

ValueDescription
0从 sql_parse 的顶级查询中执行的查询。
1执行准备好的语句
2执行的游标语句
3在存储过程中执行查询
  • query-exec-done:查询执行完成时触发。该探针包括单个参数status,当成功执行查询时返回_2,如果发生错误则返回 1.