2013-06-05 30 views
1

我要檢查cust_data_card_id是否存在表tbl_cust_data很慢,在表tbl_cust_dump_data.cust_data_card_id等存在「裏沒有(子查詢)」爲一大桌

我寫了下面的代碼

select * from tbl_cust_dump_data 
where tbl_cust_dump_data.cust_data_card_id NOT IN 
     (select cust_data_card_id from tbl_cust_data); 

當查詢在tbl_cust_data返回超過18000行不返回任何結果,那隻能說明長時間的負荷,但它是好的,較小的數據集

+0

的SQL味道? – Blorgbeard

+0

php mysql ......... – Techlord

+0

我已經添加了'mysql'標籤 - 下次你應該這樣做。 PHP似乎並不相關,所以我沒有添加。 – Blorgbeard

回答

0

我想有一個類似的問題問的不很久以前>> HERE <<。請確保您已cust_data_card_id索引,並請張貼的

EXPLAIN 
select * from tbl_cust_dump_data 
where tbl_cust_dump_data.cust_data_card_id NOT IN 
     (select cust_data_card_id from tbl_cust_data); 

結果這樣我們就可以看看有什麼可以進一步優化。

1

嘗試:

SELECT * 
FROM tbl_cust_dump_data t1 
WHERE NOT EXISTS 
     (SELECT 0 
     FROM tbl_cust_data t2 
     WHERE t2.cust_data_card_id = t1.cust_data_card_id)