在MySQL中,怎样删除表中与临时表相同的数据?

A表(有上亿条数据),需要删除其中与B表(数据量不定)相同的数据(也可能没有相同数据,也可能都是),有索引,无主键,不能分表

以下语句太慢,应该怎么改?

DELETE A FROM A WHERE EXISTS (

SELECT 1 FROM B WHERE A.insert_time = B.insert_time

)

第一步先查出要删除数据的rowid,然后根据rowid删除,这是最快的办法了。但是你这里a表和b表有相同的插入时间?这是什么逻辑关系?即使两个表有主外健关系也不可能插入时间完全相同啊

用左联

delete a
from A
left join B on A.insert_time = B.insert_time
where B.insert_time is not null