1、场景
在SQL性能分析中经常需要用户提供SQL的执行计划,但是有些用户提供的SQL执行计划是一串的文本,阅读性比较差,也有些用户使用截图的方式上传执行计划,这种情况如果执行计划比较多,截图就很容易只看到部分内容,不完整。为了提高问题排查的效率,在这里提出SQL执行计划上传规范。
2、执行计划最佳提交方式
英文输入法模式下,在执行计划的最前面输入```(3个反引号),同时在执行计划的最后面输入```(3个反引号),再右边的预览就可以显示出规范的执行计划了。创建主题和回复的输入框都支持该功能。
创建主题输入框
回复输入框
3、样例SQL
mysql> explain select * from INFORMATION_SCHEMA.TABLES as a left join INFORMATION_SCHEMA.TABLES as b on a.TABLE_NAME=b.TABLE_NAME;
+-----------------------------+----------+------+---------------+--------------------------------------------------+
| id | estRows | task | access object | operator info |
+-----------------------------+----------+------+---------------+--------------------------------------------------+
| HashJoin_7 | 10000.00 | root | | left outer join, equal:[eq(Column#3, Column#27)] |
| ├─Selection_10(Build) | 8000.00 | root | | not(isnull(Column#27)) |
| │ └─MemTableScan_11 | 10000.00 | root | table:TABLES | |
| └─MemTableScan_9(Probe) | 10000.00 | root | table:TABLES | |
+-----------------------------+----------+------+---------------+--------------------------------------------------+
4 rows in set (0.00 sec)
4、注意事项
- SQL执行计划尽量不要使用截图方式上传。
- 不要使用\G方式格式化SQL执行计划,这样会导致SQL执行的层次不直观。
- 在输入反引号的时候需要注意当前输入法模式为英文模式。