我有三个表,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