我有一个表格,我想在三列上应用唯一约束, 表有~250000条记录。 我想获取重复记录,以便我可以做出决定(如何处理重复数据),我的查询需要超过600秒并超时。我无法增加查询时间。
SELECT
col1, col2, col3, COUNT(*) AS c
FROM
table
WHERE
col3 != ''
GROUP BY col1, col2, col3
HAVING c > 1
我尝试过使用10条记录的限制但没有运气。
编辑: 所有这些列都添加了索引
答案 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;
此查询不会返回重复记录的计数,但会返回重复的记录,