有没有办法像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@MattEXPLAIN 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