首页/数据/数据库速查/Extra 关键值解读(filesort / temporary)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条
性能与调优57 条
Redis 命令96 条Redis 运维与场景124 条

Extra 关键值解读(filesort / temporary)

Extra 藏关键信号:Using filesort=额外排序、Using temporary=中间表、Using index=覆盖索引、Using index condition=ICP、Using join buffer=无索引连表。

数据库速查数据更新于 2026-10-12

Extra 速查

值含义方向
Using index覆盖索引,不回表好
Using index condition索引条件下推(ICP)好
Using where需要回表后过滤中性
Using filesort额外排序(不一定落盘)优化排序索引
Using temporary临时表(常见于 GROUP BY/DISTINCT)审视写法
Using join buffer (hash join)被驱动表无索引加索引或调 buffer

定位排序问题

定位排序问题
EXPLAIN SELECT * FROM appdb.orders WHERE user_id = 1
ORDER BY created_at DESC LIMIT 20;
-- Extra: Using filesort => 考虑 (user_id, created_at) 联合索引
filesort 不一定落磁盘:小结果集在内存排也很快,先看数据规模再优化。

易错点

  • 见 filesort 就加索引:ORDER BY 与 WHERE 列不是同一个索引时可能无效
  • Using temporary 全部当问题:小结果 GROUP BY 临时表开销可忽略

数据来源与参考

  • MySQL 8.0 Reference Manual: EXPLAIN Extra Information

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌