db는 mysql 인데요..
table1 은 약 2천만건이 있고
table2 는 약 4천만건이 있어요.
table1 의 pk 는 unq_id 이고
table2 의 pk 는 unq_id,mdltyp 에요.
현재 table1에 unq_id 중 table2에는 없는게 있어요. 이걸 찾고싶어요.
이걸 찾아서 지워줘야 하는데요.. 쿼리를 2가지로 짰는데 너무 오래걸려서요.
테이블의 데이타수를 줄이면 잘 되긴해요..
대용량테이블에서 값을 빠르게 뽑아내는 방법이 있을까요?
방식1)
SELECT
unq_id
FROM
(SELECT
a.UNQ_ID
,COUNT(b.UNQ_ID) cnt
from
table1 a
LEFT OUTER JOIN
table2 b
ON a.UNQ_ID=b.UNQ_ID
GROUP BY
a.UNQ_ID) c
WHERE
c.cnt=0
방식2)
SELECT
a.UNQ_ID
from
table1 a
LEFT OUTER JOIN
(
select
distinct unq_id
from
table2
) b
ON a.UNQ_ID=b.UNQ_ID
WHERE
b.UNQ_ID IS NULL