MySQL EXPLAIN 执行计划详解
学习使用EXPLAIN分析SQL查询的执行计划,优化性能瓶颈。 · 难度:入门 · +15XP
MySQL EXPLAIN 执行计划
EXPLAIN是MySQL中最重要的性能分析工具之一,它模拟优化器执行SQL查询,输出每一步的执行计划。通过解读EXPLAIN结果,可以快速定位全表扫描、索引使用不当等问题。
基本语法
EXPLAIN SELECT * FROM users WHERE age > 30;关键列解释
| 列名 | 含义 |
|---|---|
| id | 查询中SELECT的标识符,id越大越先执行 |
| select_type | 查询类型,如SIMPLE、PRIMARY、SUBQUERY |
| type | 访问类型,从ALL(全表扫描)到const(常数查找)性能递增 |
| possible_keys | 可能使用的索引 |
| key | 实际使用的索引 |
| rows | 优化器估计需要扫描的行数 |
| Extra | 额外信息,如Using where、Using index |
示例分析
假设有一个订单表,执行如下查询:
EXPLAIN SELECT order_id, amount FROM orders WHERE customer_id = 123 AND status = 'completed';输出中type为ref表示使用了非唯一索引扫描;rows=500表示预计扫描500行;Extra显示Using where说明在索引基础上又做了条件过滤。如果type=ALL,则需要考虑添加索引。
练习提示
在下方编辑器中,先创建一张包含1000条模拟数据的表,然后执行EXPLAIN分析不同查询的表现,尝试添加索引后对比rows和type的变化。