MySQL 执行计划是一张图表,详细说明了 MySQL 如何执行查询,包括步骤和资源使用情况。可以通过 EXPLAIN 关键字或 MySQL Workbench GUI 查看执行计划。执行计划通常包括块 ID、查询类型、涉及表、访问方式、可能/实际使用的索引、估计行数、过滤百分比和附加信息。解释执行计划时,应关注访问方式(type)、估计行数(rows)和附加信息(Extra)。可以遵循建议(例如创建适当索引、使用覆盖索引、避免 SELECT * 和优化 WHERE 子句)来优化执行计划,从而提
如何使用 MySQL 执行计划
什么是 MySQL 执行计划?
MySQL 执行计划是一个说明 MySQL 将如何执行查询的图表。它显示了 MySQL 估计的步骤和资源使用情况,以帮助用户了解查询的性能。
如何查看执行计划
有以下几种方法可以查看执行计划:
- 使用
EXPLAIN关键字:EXPLAIN - 使用 MySQL Workbench GUI
执行计划的结构
执行计划通常包含以下信息:
- id:查询块的标识符。
-
select_type:查询类型,例如
SIMPLE或DEPENDENT SUBQUERY。 - table:涉及的表或视图的名称。
-
type:MySQL 将如何访问表,例如
ALL(全表扫描)或index(索引扫描)。 - possible_keys:查询中可能使用的索引。
- key:实际上使用的索引。
- rows:MySQL 估计的要扫描的行数。
-
filtered:MyS
QL 估计的被 WHERE 子句过滤的行百分比。 -
Extra:有关查询执行的附加信息,例如
Using index或Using temporary。
如何解释执行计划
解释执行计划时,请关注以下关键点:
-
type:这表示 MySQL 访问表的效率。
ALL是最慢的,index是最快的。 - rows:较高的行数估计值表明查询可能需要更长的时间。
- Extra:这提供了有关查询执行的其他见解,例如是否使用了临时表。
如何优化执行计划
通过遵循以下建议,可以优化执行计划:
- 确保表上有适当的索引。
- 使用覆盖索引以从索引中检索所有数据。
- 避免使用
SELECT *,而是仅选择所需的列。 - 优化 WHERE 子句,使用索引来过滤数据。
- 考虑重写查询以使其更有效。

QL 估计的被 WHERE 子句过滤的行百分比。






