我有 2 个表:Table1 (ID, Table2ID, Col1,....) 和 Table2 (ID, Col1,....)。Table2ID 是来自 Table2 的外键引用。我想编写一个查询以从 Table2 中删除 ID(Table2ID)在 Table1 中不存在的记录。表 1 > 3 亿和表 1 > 1 亿的记录数。我有两个查询,但不确定哪一个会更快:
查询 1(无效):
delete from Table2
select ID from Table2
except
select Table2ID from Table1
查询 2:
delete from Table2
where ID not in (select distinct Table2ID from Table1)