| 用途 | 消除排序与临时表 |
|---|---|
| 信号 | Extra: Using filesort / Using temporary |
| 手段 | 索引对齐、缩减行数、调小结果 |
优化示例
优化示例
-- 差:排序方向与索引不一致
SELECT * FROM orders WHERE user_id=42 ORDER BY created_at DESC LIMIT 10;
-- 好:建联合索引 (user_id, created_at)
ALTER TABLE orders ADD INDEX idx_user_created (user_id, created_at);
-- GROUP BY 临时表:确认分组列有索引
EXPLAIN SELECT status, COUNT(*) FROM orders GROUP BY status;小结果集上的 filesort 未必慢;阈值由 sort_buffer_size 与行数决定,先量化再优化。