我有一个巨大的表 A ,其中N>应使用外部API服务的数据定期更新2m行。因为桌子很大并且有一些重型索引,所以我确实有尽可能少的更新呼叫的强大压力。
为了实现这一点,我正在制作TEMPORARY TABLE
B ,我正在推送从API服务获得的每个数据,而不是使用JOIN进行更新,以更新数千(60k>一次操作中N> 50k)行。
案例是我正在更新记录,即使它们在这两个表之间是相同的。我的问题是,如果有一个比以下方法更有效的方法从表B中删除相同的行,那么我不会尝试在我的通话中更新它们:
DELETE del
FROM B del
INNER JOIN A
ON del.id=A.id
WHERE
del.col_1 = A.col_1
AND del.col_2 = A.col_2
....
假设可能有超过15列列出我想要避免的内容......
答案 0 :(得分:0)
很难说,但你可以试试这样的NATURAL JOIN
DELETE del
FROM B del
NATURAL JOIN E