ORDER BY会将我的查询放慢抓取速度。MySQL使用SELECT *包装查询很慢
在通过StackOverflow尝试解决此问题时,我发现有几个references用'SELECT *'来包装查询。由于某些深不可测的原因,这也会使我的查询变慢。
我不明白如何用这种方式包装我的查询应该有任何效果。 SELECT * FROM(QUERY)不应与QUERY相同吗?
这是我的查询:
SELECT W.NDB_No, Seq, Gm_Wgt*Nutr_Val/100
FROM WEIGHT AS W,
(SELECT NDB_No, Nutr_No FROM FOOD_DES, NUT ORDER BY nutrEnum) AS A
LEFT JOIN
NUT_DATA AS B
ON A.NDB_No = B.NDB_No AND A.Nutr_No = B.Nutr_No;
它需要0.8秒。用SELECT * FROM (...) AS X
包装此查询会极大地降低查询速度。这里发生了什么?此外,任何帮助获得ORDER BY的工作将不胜感激(可能是一个相关的问题)。请参阅SQL小提琴here。
有没有'ORDER BY'在此查询,是吗? – tadman
一如既往 - 检查解释计划 – Randy
@tadman:不,还没有,但这就是我要去的地方。现在,我很困惑为什么用SELECT *包装查询会改变速度。我的意思是,这是同一个查询! – ishmael