有没有办法像Oracle一样将MYsql解释计划显示为一棵树

有没有办法像Oracle一样将MYsql解释计划显示为一棵树,mysql,oracle,explain,Mysql,Oracle,Explain,示例查询: create table t1(c1 int primary key); MySQL 神谕: 可以从树中获得大量信息,如解释计划。如果MySQL也能展示这一点,那就太好了 更新: 使用Percona工具包pt VisualExplain,它运行良好 命令行输出: mysql> explain select c1 from t1, A, B where c1 > 0 group by c1 having count(1) > 2 limit 1; +----+---

示例查询:

create table t1(c1 int primary key);
MySQL 神谕: 可以从
中获得大量信息,如解释计划。如果MySQL也能展示这一点,那就太好了

更新: 使用Percona工具包pt VisualExplain,它运行良好

命令行输出:

mysql> explain select c1 from t1, A, B where c1 > 0 group by c1 having count(1) > 2 limit 1;
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-----------------------------------------------------------+
| id | select_type | table | partitions | type  | possible_keys | key     | key_len | ref  | rows | filtered | Extra                                                     |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-----------------------------------------------------------+
|  1 | SIMPLE      | t1    | NULL       | index | PRIMARY       | PRIMARY | 4       | NULL |    1 |   100.00 | Using where; Using index; Using temporary; Using filesort |
|  1 | SIMPLE      | A     | NULL       | index | NULL          | idx7    | 4       | NULL |    1 |   100.00 | Using index; Using join buffer (Block Nested Loop)        |
|  1 | SIMPLE      | B     | NULL       | index | NULL          | idx7    | 4       | NULL |    1 |   100.00 | Using index; Using join buffer (Block Nested Loop)        |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-----------------------------------------------------------+
3 rows in set, 1 warning (0.00 sec)
pt视觉解释的输出

$mysql -e "explain select c1 from t1, A, B where c1 > 0 group by c1 having count(1) > 2 limit 1" | pt-visual-explain
Filesort
+- TEMPORARY
   table          temporary(t1,A,B)
   +- JOIN
      +- Join buffer
      |  +- Index scan
      |     key            B->idx7
      |     key_len        4
      |     rows           1
      +- JOIN
         +- Join buffer
         |  +- Index scan
         |     key            A->idx7
         |     key_len        4
         |     rows           1
         +- Filter with WHERE
            +- Index scan
               key            t1->PRIMARY
               possible_keys  PRIMARY
               key_len        4
               rows           1

新的MySQL工作台附带了可视化解释计划,该计划显示了解释查询的流程图。除了命令行或mysql中的内容之外,没有太多

如果您仍然喜欢命令行,您可以使用Percona的可视化解释工具,但是它需要解释计划作为给定的输入

mysql-e“解释从t1中选择c1”| pt视觉解释


解释扩展的
功能?或者第三部分MySQL档案器?有
EXPLAIN EXTENDED
SET PROFILING=1;选择。。。;显示查询1的配置文件@Mjh@Matt
EXPLAIN EXTENDED
没有提供更多信息。
profiling
方法也没有给出树状结构。我只是列出了MySQL下可用的内容。我从来没说过你可以得到和甲骨文完全一样的东西。这取决于你是否想使用它。太好了。我刚刚安装了Percona工具包,它运行良好。
mysql> explain select c1 from t1, A, B where c1 > 0 group by c1 having count(1) > 2 limit 1;
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-----------------------------------------------------------+
| id | select_type | table | partitions | type  | possible_keys | key     | key_len | ref  | rows | filtered | Extra                                                     |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-----------------------------------------------------------+
|  1 | SIMPLE      | t1    | NULL       | index | PRIMARY       | PRIMARY | 4       | NULL |    1 |   100.00 | Using where; Using index; Using temporary; Using filesort |
|  1 | SIMPLE      | A     | NULL       | index | NULL          | idx7    | 4       | NULL |    1 |   100.00 | Using index; Using join buffer (Block Nested Loop)        |
|  1 | SIMPLE      | B     | NULL       | index | NULL          | idx7    | 4       | NULL |    1 |   100.00 | Using index; Using join buffer (Block Nested Loop)        |
+----+-------------+-------+------------+-------+---------------+---------+---------+------+------+----------+-----------------------------------------------------------+
3 rows in set, 1 warning (0.00 sec)
$mysql -e "explain select c1 from t1, A, B where c1 > 0 group by c1 having count(1) > 2 limit 1" | pt-visual-explain
Filesort
+- TEMPORARY
   table          temporary(t1,A,B)
   +- JOIN
      +- Join buffer
      |  +- Index scan
      |     key            B->idx7
      |     key_len        4
      |     rows           1
      +- JOIN
         +- Join buffer
         |  +- Index scan
         |     key            A->idx7
         |     key_len        4
         |     rows           1
         +- Filter with WHERE
            +- Index scan
               key            t1->PRIMARY
               possible_keys  PRIMARY
               key_len        4
               rows           1