下面的查詢運行非常快(小於1秒)與一個ID的MySQL GROUP_CONCAT多約束極其緩慢的,但快與一個
SELECT ID, GROUP_CONCAT(CODE SEPARATOR ' ')
FROM TABLE
WHERE TYPE='A' AND ID IN (1)
GROUP BY ID;
但極其緩慢(超過10秒)時與多於一個的運行ID
SELECT ID, GROUP_CONCAT(CODE SEPARATOR ' ')
FROM TABLE
WHERE TYPE='A' AND ID IN (1, 2)
GROUP BY ID;
我想這是因爲MySQL試圖首先對所有ID執行GROUP_CONCAT,然後將它與IN約束進行比較。有任何想法嗎?
什麼'的輸出EXPLAIN SELECT ...'兩個查詢? –
同時顯示您的索引。我會猜測,第一個是使用索引合併優化,第二個是掃描行。 –
嗨,大家好,謝謝你的幫忙。由於我提出的查詢錯誤,我已經重述了這個問題。 – roller3d