工具介绍
介于PolarDB-MySQL 内核提供了Statement Outline的功能,为了方便大家操作,我们把内核的功能给制作成了工具,欢迎大家使用,也非常欢迎大家提出宝贵的意见和建议。工具包及环境,还有操作步骤如下:
运行步骤:
本地环境需要java1.8环境,运行:java -jar Outline-0.0.5.jar
运行成功后浏览器访问:http://127.0.0.1:8080/
运用场景:
Statement outline: MySQL optimizer/index hint 来稳定执行计划的方法 以下是一些使用Statement Outline的场景示例:
1. 理解执行计划:
假设你有一个包含多表连接和子查询的复杂SQL语句,并且你希望更好地理解查询优化器如何为该语句生成执行计划。你可以使用Statement Outline来查看执行计划,从而了解表的读取顺序、连接方式、索引使用和子查询的执行等详细信息。
EXPLAIN SELECT * FROM table1
JOIN table2 ON table1.id = table2.id
WHERE table1.column1 = 'value1'
AND table2.column2 = (SELECT column2 FROM table3 WHERE column3 = 'value3');
通过分析执行计划的细节,你可以更好地理解查询是如何执行的,并找出潜在的性能问题。
2. 比较执行计划:
假设你有两个相似的SQL语句,它们分别使用了不同的索引来查询同一张表。你可以使用Statement Outline来比较这两个SQL语句的执行计划,以确定哪个索引更有利于查询性能。
EXPLAIN SELECT * FROM table1 WHERE column1 = 'value1' USE INDEX (index1);
EXPLAIN SELECT * FROM table1 WHERE column2 = 'value2' USE INDEX (index2);
通过比较这两个执行计划的差异,你可以找出性能更好的索引,并优化那些性能较差的查询。
3. 调试性能问题:
假设你遇到一个性能瓶颈,可能是由于查询执行成本过高导致的。你可以使用Statement Outline来获取查询优化器的实际行为信息,以帮助找出性能问题的原因。
SELECT * FROM table1 WHERE column1 = 'value1' ORDER BY column2 DESC;
通过查看执行计划的详细信息,你可以更好地理解查询的性能表现,并采取相应的优化措施来解决性能问题。例如,你可能需要添加合适的索引、调整表结构或重新评估查询逻辑等。
在结合上述场景,我们工具提供了对Statement outline的执行计划的可视化操作管理。
操作步骤:
查询功能:

新增功能:
- 点击新增按钮

- 新增hint类型-OPTIMIZER:

- 选取Position和hint,可参考

- 检查语句,点击完成按钮添加





