晚上好,
这是我的查询,应该从表中删除重复项。如何针对两百万条记录进行优化?
DELETE p1
FROM wp_ads_platform_users p1
INNER JOIN wp_ads_platform_users p2
WHERE p1.id < p2.id
AND p1.number = p2.number
感谢您的帮助。
DELETE
FROM wp_ads_platform_users p1
WHERE EXISTS ( SELECT NULL
FROM wp_ads_platform_users p2
WHERE p1.number = p2.number
AND p1.id < p2.id )
按wp_ads_platform_users (number, id)
的索引必须改善。
在MySQL中,您可以预先聚合:
DELETE p
FROM wp_ads_platform_users p JOIN
(SELECT number, MAX(id) as max_id
FROM wp_ads_platform_users p2
GROUP BY number
) pp
ON p.number = pp.number
WHERE p.id < pp.max_id;
也就是说,删除200万行需要时间。您可能想使用查询来重新创建表。