我需要關於此sql語句的性能建議。我有兩個「交叉」表(約16000行)和「數據」(約100000行)。問題是性能下降。我需要從「data」中獲取「title」列,其中data.partnum = cross.sku。問題是,我有多個相同的值「data.partnum」,所以我需要的是將結果限制爲僅來自內部連接的第一行。我試着在select語句中使用子查詢,但速度很慢。你可以幫我嗎?我業餘愛好數據庫 - 所以我沒有任何主鍵或索引鍵。由於SQL內部連接性能建議
SELECT '[cross]'
, IFNULL(d2.title, "") as title
, c2.maker
, c2.partnum
, c2.price
, c2.sku
FROM `cross` c2
LEFT JOIN data d2 ON d2.partnum = c2.sku
WHERE 1=1
GROUP BY c2.partnum
您是否爲'sku'和'partnum'創建了索引?性能問題應該包括'EXPLAIN ANALYZE'和一些關於表格大小,索引,當前時間表現,期望時間等的信息。'Slow'是一個相對術語,我們需要一個真實值來比較。 [** MySQL **](http://dba.stackexchange.com/questions/15371/how-do-i-get-the-execution-plan-for-a-view) –
呃!不錯,它工作得更好,我爲sku和partnum創建了索引,非常感謝你! – Strogi