对于我们的一个客户,我们提供了一个系统,用于从用户邮政编码位置检索最近的N个地标。 我们有一个包含相应坐标(纬度和经度)的所有可用邮政编码(650,000+)的数据库,以及该国400多个地标。
目前我们正在使用以下过程找到最近的N个地标
问题是我们需要从数据库访问角度和第三方访问来优化这一点。
我们已经尝试将所有zipcodes缓存到距离最近的M个地标的距离,但是该表将获得额外的6Gb数据,并且由于请求需要大约30秒才能填充大约250天。
我们正在考虑对数据进行分区并将密切的邮政编码分组在一起,但这会使确切的距离无效。
在这种情况下您会看到哪些优化解决方案。 谢谢。
答案 0 :(得分:1)
你可以尝试重复的方法。
答案 1 :(得分:1)
这应该在数据库级别完成。您应该使用具有地理扩展名的数据库作为SQL Server 2008 R2,或者使用具有PostGIS扩展的优秀开源选择PostGre SQL。有了那些存储地理BLOB而不是坐标的东西,并且有许多内置函数来计算地理位置,将为您处理第2步到第5步。
我建议你从这里开始: http://postgis.refractions.net/
此致