【发布时间】:2011-01-24 01:30:05
【问题描述】:
我有一个包含 19 000 000 条记录的相当大的表,但我遇到了重复行的问题。即使在 SO 中也有很多类似的问题,但似乎没有一个能给我一个满意的答案。需要考虑的几点:
- 行唯一性由两列确定,
location_id和datetime。 - 我希望尽可能缩短执行时间(
- 复制表格不太可行,因为表格有几 GB 大小。
- 无需担心关系。
如前所述,每个location_id 只能有一个不同的datetime,我想删除所有重复的实例。哪一个幸存下来并不重要,因为数据是相同的。
有什么想法吗?
【问题讨论】:
-
考虑删除临时索引,如果存在则触发。
-
stackoverflow.com/questions/1585412/… 中给出的方法有什么问题?
-
@Pentium10,很好,可以加快速度,但如果我使用子查询解决方案,也会降低性能。
-
当您有索引时,先尝试生成删除 SQL id,而不发出删除。删除索引后,运行更长的纯文本 SQL,其中包含一堆 ID
标签: mysql unique duplicates