我在使用 mysql 撰寫查詢時遇到了一個問題。所以我搜索了它,但找不到答案,所以我寫了一個問題。
SELECT CAT.ID, CAT2.BIRTH, CAT.NAME
FROM CAT
INNER JOIN CAT2 ON CAT.ID = CAT2.CATID
GROUP BY CAT.ID, CAT2.BIRTH, CAT.NAME
0.032秒
SELECT * FROM (
SELECT CAT.ID, CAT2.AGE, CAT.NAME
FROM CAT
INNER JOIN CAT2 ON CAT.ID = CAT2.CATID
GROUP BY CAT.ID, CAT.Birth, CAT.NAME
) AS AA
2.16秒
我只是將它包裝在選擇中,但我不知道為什么它這么慢。
當我檢查解釋時,索引(CAT.ID、CAT.Birth、CAT.NAME)作業正常。
uj5u.com熱心網友回復:
在第二個查詢中,MySQL 會將子查詢的結果放入記憶體中。然后它必須再次查詢該資料,這需要更多時間。如果您在外部查詢中進行過濾,您可能會看到更大的性能差異。請注意,任何索引只能在子查詢內部使用,而不能在外部查詢上使用,通常必須掃描。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/476415.html
上一篇:在串列中查找物件而不對其進行迭代
