util.debug.collectSlowQueryDiagnostics()
在您的 MySQL 服务器上运行诊断报告的多次迭代,使您能够在处理指定查询时分析服务器的多个方面。
诊断报告以 zip 文件的形式生成到本地目录或指定路径。
该实用程序生成 TSV 和 YAML 格式的文件。
诊断实用程序具有以下签名:
util.debug.slowQueryDiagnostics("path", "query", {options})
此实用程序返回的数据还包括util.debug.collectDiagnostics()
和收集的默认数据util.debug.collectHighLoadDiagnostics()
。
-
"
:诊断存档写入的位置。如果为空,则写入当前目录。path
""
:要分析的 SQL 查询。query
""
: 可选参数字典。请参阅 收集诊断信息的选项。options
"
除
util.debug.collectHighLoadDiagnostics()
诊断内容外,还util.debug.slowQueryDiagnostics
收集以下信息:
查询的
EXPLAIN
输出。查询的优化器跟踪。
查询中使用的表的 DDL。
查询生成的警告。
-
延迟:
number
数据收集迭代之间等待的秒数。默认值为 30。只要定义的查询运行,就会收集数据。查询完成后,数据收集将停止。
- innodbMutex: 真 | 错误的
如果为真,还收集 的输出
SHOW ENGINE INNODB MUTEX
。默认情况下禁用此命令,因为它会对生产性能产生影响。- pfsInstrumentation:[当前 | 介质 | 满的]
-
定义使用哪些 Performance Schema 工具和消费者。可能的值是:
current
: 默认。当前启用的 Performance Schema 工具和消费者。不会对您的服务器配置进行任何更改。medium
%history
: 启用除and 之外的所有消费者%history_long
,以及除 之外的所有工具wait/synch/%
。full
:启用所有消费者和所有仪器。
-
自定义SQL:
array
-
要运行的一个或多个 SQL 语句。您可以控制何时使用以下前缀运行语句:
BEFORE
, 或无:默认。自定义 SQL 在指标收集迭代开始之前运行一次。AFTER
:自定义 SQL 在指标收集迭代完成后运行一次。DURING
:自定义 SQL 会针对指标集合的每次迭代运行一次。
-
自定义外壳:
array
-
要运行的一个或多个 shell(DOS、BOURNE 等)命令。您可以控制何时使用以下前缀运行命令:
BEFORE
: 默认。在指标收集迭代开始之前,命令运行一次。DURING
:命令针对指标集合的每次迭代运行一次。AFTER
:在指标收集迭代完成后,命令运行一次。