我的查询在名为“历史记录”的表格上返回了17,000行。它有大约15个左连接到其他表,主要基于history.id = othertable.primary_id
。
当我删除order by history.primary_id DESC
时,查询速度非常快。当order by history.primary_id DESC
存在时,MySQL需要大约26秒才能写入临时表。所以非常慢。
但是当“order by ”存在时,但是省略了连接,它很快。
我不明白为什么写入临时表的数据依赖于连接? MySQL是否已经知道17,000行由查询执行后的那一行组成了什么?
根据“ EXPLAIN ”,我的索引设置得非常好,但对于我的生活,我无法对此查询进行排序。我想使用1000的限制但是当我无法排序时它是无用的。我似乎无法使用临时表。