问题描述
我有一个包含大约 300 万条记录的表,其中包含经纬度。我想比较每条记录之间的距离,以检查哪条记录可能是同一个地方或附近的地方。
对于小测试表,我使用交叉连接和距离函数,但对于这个 3m 表,交叉连接是问题。
您有什么建议或解决方案吗?
解决方法
但是对于这个 3m 的表,交叉连接是问题所在。 ……有什么建议……?
您可以使用 ST_CLUSTERDBSCAN 将您的记录划分为集群,而不是将所有 3M 记录相互交叉连接,而是仅将同一分区/集群内的记录交叉连接
下面是如何对地理点进行聚类的示例
ST_CLUSTERDBSCAN(ST_GEOGPOINT(longitude,latitude),5000,1) over() cluster