2011-11-27 84 views
0

我正在使用MySQL(Windows)中的maxmind geocities表(see here)。搜索重复的大型地理空间数据库

这张表有超过270万行(非常大)。

我试图找到城市重复(为了找到像北京(北京),北京每个城市不同的拼写...)跟随它们的经度和纬度。

即使我使用左外连接,子请求或复合where子句,但响应时间过长(它永远不会结束)。

这是我最后一次尝试:

select * 
from cities c1, cities c2 
where c2.longitude=c1.longitude 
and c2.latitude=c1.latitude 
and c2.cities!=c1.cities 

有谁有一个想法。

回答

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 
+0

谢谢您的快速答复, – Laslo

+0

谢谢您的快速答复,但它的工作原理有点快,但还不够,我(190S)。此外,我会因此得到同一城市的不同拼写(具有相同的经度和纬度)。 – Laslo

+0

你尝试添加索引吗? – a1ex07