删除 ID 不在另一个 table 中的非常大的 table 记录

Deleting very large table records where id not in another table

我有一个 table 值有 8000 万条记录。另一个 table values_history 拥有 2.5 亿条记录。

我想过滤 values_history table 并希望保留唯一在值 table 中预设了 id 的数据。

delete from values_history where id not in (select id from values);

这个查询需要很长时间,我不得不中止这个过程。

请提供一些想法来加快进程。

我可以一次删除1000000条这样的记录吗?

我已经提取出所需的记录并插入到临时 table 中。这花了 2 小时后我删除了 table 然后再次将提取的数据插入到主 table整个过程大约需要 4 个小时,因为 me.I 之前已经删除了外键和所有其他约束..