本次主要是表与表之间去重处理(如想查A表有-B表没有的数据),可通过LEFT JOIN 、(NOT) IN、(NOT)EXIST来实现,经过实际测试,left join的查询速度大于另外两个:
现有:
A表-5000万数据;
B表-2000万数据
目标:在A表取数,排除B表内容。
1、LEFT JOIN写法(查询时间约为300秒)
select *
from A left join B on A.id = b.id
where B.id is null
;
2、(NOT)EXIST写法(查询时间约1200秒)
select *
from A
where not exists (select * from B where A.id = B.id)
;
3、(NOT) IN写法(查询时间约1500秒)
select *
from A
where A.id not in (select id from B)
;