使用连接时,MYSQL排序是否复制到临时表?

时间:2012-09-24 23:01:30

标签: mysql temp-tables

我的查询在名为“历史记录”的表格上返回了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的限制但是当我无法排序时它是无用的。我似乎无法使用临时表。

Here is a screenshot of the query.

0 个答案:

没有答案