掌握MySQL执行计划,了解SQL性能分析(mysql执行计划怎么看)
MySQL的执行计划是它执行SQL语句时操作的步骤列表。通过使用MySQL执行计划,可以更好地了解SQL文是如何被逐步解释和执行的,以及MySQL是如何处理SQL查询的。了解MySQL执行计划有助于确定如何提高SQL语句性能,也有助于开发者弄清性能分析之间的区别。
MySQL服务器可以轻松访问执行计划,只需执行下面的SQL查询:
“`sql
EXPLAIN ;
如果查询没有太多的类型的话,使用这一查询可以看到表的使用情况、查询的访问类型和其它有用的性能指标。
例如,假设有一个类似下面的查询:
```sqlSELECT * FROM users WHERE age > 25;
当您运行EXPLAIN时,它可能会生成类似以下结果的列表:
![](https://static001.geekbang.org/resource/image/ … pic1.jpg
这张图显示,MySQL将在users表中定位age> 25行,并将其返回。 像表和索引名称这样的元数据特征也可以根据MySQL执行计划预测性能影响。
然后,开发人员可以使用这些指标,根据MySQL引擎具体有多快来执行不同类型的操作来分析MySQL执行计划。
除了EXPLAIN之外,MySQL 5.6引入了另外一项名为Optimizer Trace的新功能,该功能可以显示与MySQL查询优化器有关的完整操作序列。 要查看Optimizer Trace,请在MySQL服务器上运行以下查询:
“`sql
SET optimizer_trace=enabled;
SELECT * FROM users WHERE age > 25;
Optimizer Trace可以根据复杂查询展开更多信息,然后将这些信息用于更有效地估计MySQL执行计划是如何建模的。
本文介绍了MySQL执行计划可以提升SQL性能的一些原理,以及如何使用MySQL中的EXPLAIN和Optimizer Trace来查看MySQL执行计划的案例步骤。 通过使用这些工具,可以用最小的时间获得最大的性能改进。