在里面
`synchro_newitems`
表我有所有新项目(来自外部来源)~ 大约 500k 行。它有一列:
`new_ids`
在里面
`synchro_olditems`
表我有所有当前项目(也来自外部来源)~ 大约 500k 行。它有一列:
`old_ids`
我必须只从以下位置获取新项目synchro_newitems
:
(新项目)= synchro_newitems
(-)synchro_olditems
我尝试通过将差异插入第三张表来做到这一点:
INSERT INTO `synchro_diff` (`id`)
SELECT DISTINCT new_ids FROM synchro_newitems
LEFT JOIN
synchro_olditems ON synchro_newitems.new_ids = synchro_olditems.old_ids
WHERE synchro_olditems.old_ids IS NULL
(与“NOT IN”类似)
它适用于少量行。但是当有 500 000 行要比较时失败。
我试过很简单:
DELETE FROM synchro_newitems WHERE exists(SELECT * FROM synchro_olditems)
但它不起作用..你知道一些聪明的方法吗?