我的数据库中有一个记录列表,每个记录都与一个邮政编码相关联.
查询数据库中所有记录以查找距离另一个邮政编码n英里内的所有条目的"最佳做法"是什么?
每个邮政编码在数据库中都有一个lat/long与之关联,所以我知道我必须使用它.但是,我无法想象在每对邮政编码上运行任何类型的距离公式,转换为里程并拒绝不在我的范围内的那些.
对于这样的常见查询来说,这看起来非常昂贵.
我也考虑过进行全对预计算,但它似乎也太大了.美国大约有大约40,000个邮政编码.因此,每个邮政编码的所有对数据库将是(40,000)^ 2,或16亿条目.
我知道这是网站上的一个常见问题,所以希望有人可以指出我正确的方向以获得最佳方式.我正在使用SQL Server 2008,如果有预先构建的解决方案,那么很棒,因为我真的不想在这个例子中重新发明轮子.
相关问题:获取半径范围内的所有邮政编码(这对我没有帮助)
另外,我知道这个SourceForge项目,但它已经废弃,不再使用.
我会运行一个查询,返回包含径向搜索圆(minlat 如果您想获得想象力,SQL Server支持空间索引.