我有一个查询

SELECT DISTINCT phoneNum
FROM `Transaction_Register`
WHERE phoneNum NOT IN (SELECT phoneNum FROM `Subscription`)
LIMIT 0 , 1000000

执行b/c Transaction_Register表有数百万条记录需要太多时间
有上述查询的替代方法,如果有的话,我将不胜感激。

最佳答案

一种替代方法是使用LEFT JOIN:

select distinct t.phoneNum
from Transaction_Register t
left join Subscription s
  on t.phoneNum = s.phoneNum
where s.phoneNum is null
LIMIT 0 , 1000000;

参见SQL Fiddle with Demo

10-08 19:23