抱歉,如果这已经被回答(如果有的话,我相信有人会向我抛出链接)。前段时间想了一个类似的问题,但现在找不到了。
因此,对于这个问题:我正在为我正在开发的网站构建用户搜索,其中一个搜索条件将基于与搜索用户的距离。我已经有一张美国邮政编码及其对应的经纬度表。我还想出了如何确定边界框(最大纬度/最小纬度 - 最大长度/最小长度)以确定哪些拉链符合标准(我们不会担心精确的半径。地理正方形暂时够用了)。我的问题 - 我应该如何构建查询以优化速度?我是不是该:
- 执行所需的数学以确定边界框,然后查询邮政编码表以查找所有潜在候选邮政编码,然后搜索具有这些邮政编码的用户?
或者
- 确定纬度/经度边界框,将 zip 表与用户表连接起来,并返回纬度/经度介于参数之间的用户的结果?
我想第二种方法会更快,但我没有支持证据/具体经验表明它会。我知道足够多的 SQL 来解决问题,但我对它还是有点陌生,并且对于不同类型操作的相对性能一无所知。
谢谢你的时间!