我试图使用SQL查找2个表之间的所有不匹配的行。
表codes
包含600万个条目,表burnt
包含1百万个条目。
我尝试过使用INSERT INTO SELECT
,但这不起作用,一段时间后就崩溃了。
INSERT INTO unburnt
SELECT
*
FROM
codes T2
WHERE
NOT EXISTS (SELECT *
FROM
burnt T1
WHERE
T1.code = T2.code)
任何不匹配的行都应放入unburnt
表中。
处理此查询的最佳方法是什么?
所有3个表的数据库表结构都相同。
码
烧
未燃
答案 0 :(得分:0)
尝试将INSERT分解为一组较小的INSERTS:
INSERT INTO unburnt SELECT * .... WHERE T1.code = T2.code and T2.ID between 1 and 100000)
INSERT INTO unburnt SELECT * .... WHERE T1.code = T2.code and T2.ID between 100001 and 200000)
etc.