我在加入下面的2個表時遇到問題。我需要的是所有在CLEI或部件號在第二個表中找到的第一個表的零件,與相匹配多少計數有從表1MySQL超級緩慢內部加入組
=================== ===================
table: svi table: svp
=================== ===================
id id
po price
customer clei
clei partNumber
partNumber description
==================== ===================
SVI有大約100萬行。 SVP擁有約2000這裏是參加我使用...
SELECT svi.clei,
svi.partNumber,
count(*)
FROM svp svp
INNER JOIN
svi svi
ON (svp.clei = svi.clei)
OR (svp.partNumber = svi.partNumber)
GROUP BY svi.partNumber
查詢花費有點過了2分鐘的運行,這似乎是可笑緩慢。 clei和partNumber在兩個表中被索引。我還能做些什麼來加速這個連接?
(離題)如果'partNumber'不是表'svi'的'PK',那麼你的查詢就是無效的SQL。即使MySQL接受它,它也會自由地從SELECT語句中返回表達式svi.clei所需的值。 http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html – axiac
您的'GROUP BY'也缺少SELECT語句中的非聚合列之一 – Phil
是菲爾那是故意的。每個partNumber只能有1個clei,但每個clei可以有多個partNumber。按partNumber分組只能完成我想要做的事情。 – scott80109