语句看着没有问题啊。
table2 的数据量很大吗? table1的数据量呢?
两个表的ID都建上索引。
用这个语句试试:
select * from table1 where id not exists (select 1 from table2 where table1.id = table2.id)
把语句改成 select table1.* from table1 inner join table2 on table1.id = table2.id
或者
select * from table1,table2 where table1.id = table2.id
试试