我正在尝试从数据库中删除重复的行,以便我使用此查询
DELETE FROM data
WHERE data.ID NOT IN (
SELECT * FROM (
SELECT MIN(ID) FROM data GROUP BY Link
) AS p
)
它工作正常,但问题是我的数据库有超过1百万行,所以当我使用它时需要花费4到5个小时的时间,它仍在加载...然后我只是关闭了选项卡。 所以如果有人有更好的疑问请告诉我。感谢Advace
答案 0 :(得分:2)
一种解决方案可能是:
1)创建临时表
2)存储每个链接列的单个记录
3)截断"数据"表
4)改变"数据" table(添加UNIQUE KEY CONSTRAINT)
5)从临时表中重新导入数据表并删除tmp表
1&2) CREATE TABLE tmp AS SELECT * FROM data GROUP BY Link;
3) TRUNCATE TABLE data; -- disable foreign key constraints if any
4) ALTER TABLE data ADD UNIQUE KEY data_link_unique(Link);
5) INSERT INTO data SELECT * FROM tmp;