MySQL Shell 8.0
      util.debug.collectSlowQueryDiagnostics() runs
      multiple iterations of diagnostic reporting on your MySQL server,
      enabling you to analyze multiple aspects of your server while a
      specified query is processed.
    
The diagnostic report is generated as a zip file to either the local directory or a specified path.
The utility generates files in both TSV and YAML format.
The following requirements apply to exports using the diagnostics collection utility:
MySQL 5.7 or later is required.
The utility must be run as root.
The diagnostics utility has the following signature:
      
      util.debug.collectSlowQueryDiagnostics("path", "query", {options})
      
    
        The data returned by this utility also includes the default data
        collected by util.debug.collectDiagnostics()
        and util.debug.collectHighLoadDiagnostics().
      
          ": the
          location the diagnostics archive is written to. If empty, it
          is written to the current directory.
        path"
          ": the SQL
          query to analyze.
        query"
          ":
          dictionary of optional arguments. See
          Options for Collecting Diagnostics.
        options"
      In addition to the contents of the
      util.debug.collectHighLoadDiagnostics()
      diagnostics,
      util.debug.collectSlowQueryDiagnostics collects
      the following information:
    
          The EXPLAIN output of the query.
        
The Optimizer trace of the query.
DDL of the tables used in the query.
Warnings generated by the query.
number
        Number of seconds to wait between iterations of data collection. Default is 30. Data is collected only as long as the defined query runs. When the query is complete, the data collection stops.
            If true, also collects the output of SHOW ENGINE
            INNODB MUTEX. This command is disabled by default,
            as it can have an impact on production performance.
          
Defines which Performance Schema instruments and consumers are used. Possible values are:
                current: Default. The currently
                enabled Performance Schema instruments and consumers. No
                changes are made to your server's configuration.
              
                medium: Enables all consumers except
                %history and
                %history_long, and all instruments
                except wait/synch/%.
              
                full: Enables all consumers and all
                instruments.
              
array
        One or more SQL statements to run. You can control when the statements are run with the following prefixes:
                BEFORE, or nothing: Default. The
                custom SQL is run once, before the metrics collection
                iterations begin.
              
                AFTER: The custom SQL is run once,
                after the metrics collection iterations complete.
              
                DURING: The custom SQL is run once
                for each iteration of the metrics collection.
              
For example:
            {"customSql": ["statement1", "statement2", "statement3"]}
          array
        One or more shell (DOS, BOURNE, and so on) commands to run. You can control when the commands are run with the following prefixes:
                BEFORE: Default. The command(s) run
                once, before the metrics collection iterations begin.
              
                DURING: The command(s) run once for
                each iteration of the metrics collection.
              
                AFTER: The command(s) run once, after
                the metrics collection iterations complete.
              
For example:
            {"customShell": ["command1", "command2", "command3"]}
          These commands run with the privileges of the user running MySQL Shell and should be used with caution.