我有三個表,T1(C1,C2)
,T2(C1,C2)
,T3(C1,C2)
,我想選擇T1
行只發生在T1
不T2
,T3
。 現在我只用left join
來做到這一點。Mysql-左加入
SELECT C1,C2
FROM T1
LEFT JOIN T2 ON T1.C1=T2.C2 AND T1.C2=T2.C2
LEFT JOIN T3 ON T1.C1=T3.C2 AND T1.C3=T2.C2
WHERE T2.C1 IS NULL AND T3.C1 IS NULL;
但問題是,如何提高數據庫相當大的性能(例如在三個表中的行數> 10000000)。使用LEFT JOIN
查詢時間太長......
T1(C1,C2),T2(C1,C2)和T3(C1,C2)上是否存在索引? –
定義過長?想分享執行計劃(簡介+解釋)? –
你不知道什麼是瓶頸。有多少記錄是由此產生的?您是否使用'EXPLAIN'和'profiling'來查看優化器的功能以及MySQL和OS爲執行和發送查詢所做的事情?什麼太長意味着什麼?在IT部門,我們有單位來衡量規模和時間,你能在幾秒鐘內表達什麼意思嗎? – Mjh