从大表中获取重复记录

时间:2017-11-03 12:07:45

标签: mysql database group-by

我有一个表格,我想在三列上应用唯一约束, 表有~250000条记录。 我想获取重复记录,以便我可以做出决定(如何处理重复数据),我的查询需要超过600秒并超时。我无法增加查询时间。

SELECT 
    col1, col2, col3, COUNT(*) AS c
FROM
    table
WHERE
    col3 != ''
GROUP BY col1, col2, col3
HAVING c > 1

我尝试过使用10条记录的限制但没有运气。

编辑: 所有这些列都添加了索引

1 个答案:

答案 0 :(得分:0)

我找到了从大表中获取重复记录的更快方法,

SELECT n1.col1 , n1.col2 , n1.col3  
FROM table AS n1,
table AS n2 WHERE n1.id > n2.id AND n1.col1 = n2.col1 AND n1.col2 = n2.col2
AND n1.col3 = n2.col3;

此查询不会返回重复记录的计数,但会返回重复的记录,

相关问题