• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • diagnostics()过程

    创建用于诊断目的的当前服务器状态的报告。

    此过程通过操纵sql_log_bin系统变量的会话值来在执行过程中禁用二进制日志记录。那是一个受限的操作,因此该过程需要足以设置受限会话变量的特权。请参见“系统变量特权”。

    收集的数据diagnostics()包括以下信息:

    • metrics视图中的信息(请)
    • 来自其他相关sys架构视图的信息,例如在第95个百分位确定查询的视图
    • 来自ndbinfo模式的信息(如果MySQL服务器是NDB群集的一部分)
    • 复制状态(主服务器和从服务器)

    某些sys模式视图被计算为初始(可选),总体和增量值:

    • 初始视图是过程开始时视图的内容diagnostics()。此输出与用于增量视图的起始值相同。如果diagnostics.include_raw配置选项为,则包括初始视图ON
    • 整体视图是diagnostics()过程结束时视图的内容。此输出与用于增量视图的最终值相同。总的观点总是包括在内。
    • 增量视图是从过程执行的开始到结束之间的差异。最小值和最大值分别是端视图中的最小值和最大值。它们不一定反映监视期间的最小值和最大值。除metrics视图外,仅在第一个和最后一个输出之间计算增量。

    参量

    • in_max_runtime INT UNSIGNED:最长数据收集时间(以秒为单位)。使用NULL收集的数据为60秒的默认值。否则,请使用大于0的值。
    • in_interval INT UNSIGNED:数据收集之间的睡眠时间(以秒为单位)。使用NULL睡眠为30秒的默认。否则,请使用大于0的值。
    • in_auto_config ENUM('current','medium','full'):要使用的性能架构配置。允许的值为:

      • current:使用当前的乐器和用户设置。
      • medium:启用一些工具和使用者。
      • full:启用所有乐器和使用者。
      注意

      启用的工具和使用者越多,对MySQL服务器性能的影响就越大。请小心medium设置,尤其是对full性能有较大影响的设置。

      使用mediumfull设置需要SUPER特权。

      如果选择了其他current设置,则在过程结束时将恢复当前设置。

    配置选项

    diagnostics()可以使用以下配置选项或其相应的用户定义变量来修改该操作(请参见“ sys_config表”):

    • debug@sys.debug

      如果此选项为ON,则产生调试输出。默认值为OFF

    • diagnostics.allow_i_s_tables@sys.diagnostics.allow_i_s_tables

      如果此选项为ONdiagnostics()则允许该过程在表上执行表扫描INFORMATION_SCHEMA.TABLES。如果有很多表,这可能会很昂贵。默认值为OFF

    • diagnostics.include_raw@sys.diagnostics.include_raw

      如果此选项为ON,则diagnostics()过程输出包括查询metrics视图的原始输出。默认值为OFF

    • statement_truncate_len@sys.statement_truncate_len

      format_statement()函数返回的语句的最大长度。较长的语句将被截断为此长度。默认值为64。

    创建一个诊断报告,该报告每30秒开始一次迭代,并使用当前的Performance Schema设置最多运行120秒:

    mysql> CALL sys.diagnostics(120, 30, 'current');
    

    要将diagnostics()过程的输出捕获到文件运行时,请使用mysql客户端和命令(请参见“ mysql客户端命令”):tee filenamenotee

    mysql> tee diag.out;
    mysql> CALL sys.diagnostics(120, 30, 'current');
    mysql> notee;