我在MySQL(Windows)中使用maxmind geocities表(see here)。
这个表有超过2.7百万行(非常大)。
我试图找到城市重复(为了找到每个城市的不同拼写,如pekin(fr),北京...)遵循其经度和纬度。
即使我使用左外连接,子请求或复合where子句,但响应时间太长(它永远不会结束)。
这是我的最后一次尝试:
select *
from cities c1, cities c2
where c2.longitude=c1.longitude
and c2.latitude=c1.latitude
and c2.cities!=c1.cities
有没有人有想法。
答案 0 :(得分:1)
您可以不选择*
(我认为cities
已足够)并在cities(longtitude,latitude)
甚至cities(longtitude,latitude, cities)
上添加索引,从而加快查询速度。你也可以尝试
SELECT longitude,latitude, COUNT(DISTINCT c.cities) as num_dup
FROM cities c
GROUP BY longitude,latitude
HAVING num_dup > 1