对于一般的X Plugin监视,使用它公开的状态变量。看到第20.5.6.3节,“X插件状态变量”。有关监视消息压缩效果的具体信息,请参见监控连接压缩的X插件。
本节介绍如何监控X Plugin在执行X DevAPI操作时生成的SQL语句。当您执行CRUD语句时,它被转换为SQL并在服务器上执行。为了能够监视生成的SQL,必须启用Performance Schema表。SQL注册在performance_schema.events_statements_current
,performance_schema.events_statements_history
, 和performity_schema.events_statements_history_long.
表。下面的示例使用世界_X.
架构,作为Quickstart教程的一部分导入本节中的一部分。我们在python模式下使用mysql shell,\ SQL.
命令使您能够在不转换为SQL模式的情况下发出SQL语句。这是重要的,因为如果您尝试切换到SQL模式,则过程显示此操作的结果而不是x devapi操作。这\ SQL.
如果您在JavaScript模式下使用MySQL Shell,则以相同的方式使用命令。
检查是否
events_statements_history
消费者是启用的。问题:mysql-py> \sql SELECT enabled FROM performance_schema。= ' events_statements_history setup_consumers地方的名字 ' +---------+ | 启用 | +---------+ | 是的 | +---------+
检查所有仪器是否向消费者报告数据。问题:
mysql-py> \sql SELECT NAME, ENABLED, TIMED FROM performance_schema。WHERE NAME LIKE 'statement/%' AND NOT (ENABLED AND TIMED)
如果此语句报告至少一行,则需要启用这些工具。看到第27.4节,“性能模式运行时配置”。
获取当前连接的线程ID。问题:
mysql-py> \sql SELECT thread_id INTO @id FROM performance_schema。线程processlist_id = connection_id ()
执行希望查看生成的SQL的X DevAPI CRUD操作。例如,问题:
mysql-py > db.CountryInfo。找到(“Name =:国家”)。绑定(“国家”、“意大利”)
您不得向下一步发出任何进一步的操作以显示正确的结果。
显示此线程ID执行的最后一个SQL查询。问题:
mysql-py> \sql SELECT THREAD_ID, MYSQL_ERRNO,SQL_TEXT FROM performance_schema。events_statements_historyWHERE THREAD_ID=@id ORDER BY TIMER_START DESC LIMIT 1; +-----------+-------------+--------------------------------------------------------------------------------------+ | THREAD_ID | MYSQL_ERRNO | SQL_TEXT | +-----------+-------------+--------------------------------------------------------------------------------------+ | 29 | 0 | SELECT doc FROM `world_x`.`CountryInfo` WHERE (JSON_EXTRACT(doc,'$.Name') = 'Italy') | +-----------+-------------+--------------------------------------------------------------------------------------+
结果显示了X Plugin根据最近的语句生成的SQL,在本例中是前一步的X DevAPI CRUD操作。