我正在使用以下查询尝试识别大约1000万行的表中的数据
SELECT *
FROM
db.tablename x
JOIN db.tablename z
ON x.columnA = z.columnA
WHERE
x.columnB > z.columnB
问题是该表没有主键,因为值是primaryKey中的重复数据。上面的查询速度非常慢,我无法弄清楚如何提高效率。
添加LIMIT 100
似乎仍然无济于事?
有什么想法吗?
答案 0 :(得分:2)
要查找重复值,您可以:
select columnA
from table
group by columnA
having count(*) > 1
根据您想要做的事情,您可以将其放在临时表中。
但是你有一个身份概念(即使不是100%一直都是正确的)并且没有数据索引似乎很奇怪 - 你不想经常使用这个字段进行查找吗?也许您可以在columnA上创建一个非唯一索引,至少在您运行查询时