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