对一张表的数据进行删除,因为要根据此表某字段进行筛选删除并且要根据另外一个表的数据筛选,数据量巨大用IN操作拖累效率,所以用exists进行数据选择删除,提高效率。
DELETE FROM test_some s WHERE EXISTS(
SELECT 1 FROM
(SELECT device_mac FROM test_big b GROUP BY device_mac HAVING COUNT(device_mac) >1)b
WHERE s.device_mac = b.device_mac
);
注释:从表test_some中删除数据,要删除的数据特征为表test_big中个数大于1的device_mac。将device_mac大于1的数据从表test_some中删除!!!
本文介绍如何通过exists操作优化删除test_some表中,那些在test_big表中device_mac出现次数超过1的记录,以提高大数据场景下的删除效率。

650

被折叠的 条评论
为什么被折叠?



