好吧,文档给出了出现“使用临时”时的确切原因:
可以在以下条件下创建临时表:
如果有一个ORDER BY子句和另一个GROUP BY子句,或者ORDER BY或GROUP
BY包含联接队列中第一个表以外的表中的列,则会创建一个临时表。DISTINCT与ORDER BY结合使用可能需要一个临时表。
如果使用SQL_SMALL_RESULT选项,则MySQL使用内存中临时表,除非查询还包含需要磁盘存储的元素(稍后描述)。
快速扫描显示您患有#1。
而这个博客从2009年说:“使用文件排序”指的是那种不能用指数来进行。由于您要按计算字段排序,所以这也将是正确的。
因此,这就是“错误”。



