常见 type 取值
| type | 含义 | 典型场景 |
|---|---|---|
| const | 至多匹配一行 | 主键或唯一索引与常量比较:WHERE id = 1 |
| eq_ref | 连接时被驱动表每行至多匹配一行 | 被驱动表用主键/唯一索引等值连接 |
| ref | 非唯一索引等值查找,可匹配多行 | 普通索引列 = 常量或连接键 |
| range | 索引范围扫描 | BETWEEN、>、<、IN 作用于索引列 |
| index | 遍历整棵索引树 | 需要按索引顺序读取全部数据,或索引覆盖查询 |
| ALL | 全表扫描 | 没有可用索引,或优化器判断扫描更划算 |
示例
示例
EXPLAIN SELECT * FROM users WHERE id = 1; -- const
EXPLAIN SELECT * FROM users WHERE email = 'a@x.com'; -- ref(email 非唯一索引)
EXPLAIN SELECT * FROM orders WHERE total BETWEEN 10 AND 20; -- range(total 有索引时)type=index 出现在输出里不代表已经优化到位:它是扫描整棵索引,代价接近全表扫描。