使用更大的数据库优化MySQL查询

时间:2013-04-05 10:52:48

标签: mysql select optimization bulkinsert

如何有效地编写以下查询

SELECT DISTINCT a.id 
FROM table1 a where a.id NOT IN (SELECT DISTINCT b.id 
                                 FROM table2 b)

发布此查询后,结果将通过插入查询插入到table2中。

问题是table1有大约75300条记录,table2有大约74000条记录。

此查询每10分钟执行一次,执行约需1.5分钟。

此查询可能更快的任何可能性?

1 个答案:

答案 0 :(得分:4)

尝试使用Join

SELECT DISTINCT a.id from table1 a
LEFT JOIN table2 b
on a.id = b.id
Where b.id is null

Left Join子句将从a中选择所有行,无论b中是否存在匹配的行。然后,您可以使用末尾的where子句确保a中返回的行与b

不匹配