我的数据库中有一个记录列表,每条记录都与一个邮政编码相关联。
查询数据库中的所有记录以查找另一个邮政编码 n 英里范围内的所有条目的“最佳实践”是什么?
每个邮政编码在数据库中都有一个与之关联的纬度/经度,所以我知道我必须使用它。但是,我无法想象在每对邮政编码上运行任何类型的距离公式,转换为英里并拒绝那些不在我半径范围内的。
对于这样一个常见的查询,这似乎在计算上非常昂贵。
我也考虑过进行全对预计算,但它似乎也太大而无法考虑。美国大约有 40,000 个邮政编码。因此,每个邮政编码的所有配对数据库将是 (40,000)^2,即 16 亿个条目。
我知道这是网站上的一个常见问题,所以希望有人可以为我指明正确的方向以找到最佳方法。我正在使用SQL Server 2008,如果有预构建的解决方案,那就太好了,因为我真的不想在这种情况下重新发明轮子。
相关问题:获取半径内的所有邮政编码(这对我没有帮助)
另外,我知道这个SourceForge项目,但它已被遗弃且不再使用。