常见 Extra 标记
| 标记 | 含义与提示 |
|---|---|
| Using where | 存储引擎返回行后,Server 层还要按 WHERE 过滤;过滤列未全部进入索引时出现 |
| Using index | 覆盖索引:查询所需列都在索引里,不需要回表 |
| Using index condition | 索引条件下推(ICP):部分条件在存储引擎的索引层完成过滤 |
| Using filesort | 需要额外排序步骤(数据量小在内存缓冲完成,量大才落盘) |
| Using temporary | 使用内部临时表:GROUP BY / DISTINCT / UNION 等无法借助索引时出现 |
| Using join buffer | 连接时先放入连接缓冲;带 (hash join) 为 8.0.18+ 的哈希连接 |
| Using index for skip scan | 8.0.13+ 跳跃扫描:未使用前导列也能直接利用后续列 |
示例
示例
EXPLAIN SELECT user_id, COUNT(*)
FROM orders
GROUP BY user_id;
-- Extra 可能同时出现:Using index; Using temporaryUsing filesort 不表示一定用到磁盘文件:先看排序数据量,再考虑调整索引顺序来消除排序步骤。