これがすでに回答されている場合は申し訳ありません(ある場合は誰かが私にリンクを投げると確信しています)。しばらく前に同じような質問を考えましたが、今は見つかりません。
したがって、質問については、開発中のサイトのユーザー検索を作成しています。検索条件の1つは、検索ユーザーからの距離に基づいています。私はすでに米国の郵便番号とそれに対応する緯度/経度の表を持っています。また、どのジップが基準に適合するかを決定するためのバウンディングボックス(最大緯度/最小緯度-最大長/最小長)を決定する方法も理解しました(正確な半径については心配しません。地理的な正方形当面は十分です)。私の質問-速度を最適化するためにクエリをどのように構成する必要がありますか?するべきか:
- 必要な計算を実行してバウンディングボックスを決定し、次に郵便番号を照会して潜在的な候補であるすべての郵便番号を見つけ、続いてそれらの郵便番号のいずれかを持つユーザーを検索しますか?
また
- 緯度/経度の境界ボックスを決定し、zipテーブルをユーザーテーブルと結合して、緯度/経度がパラメーターの間にあるユーザーの結果を返しますか?
2番目の方法の方が速いと思いますが、それを示唆する裏付けとなる証拠/特定の経験はありません。私は回避するのに十分なSQLを知っていますが、それでもまだ少し慣れていないので、さまざまなタイプの操作の相対的なパフォーマンスに関しては何の手がかりもありません。
御時間ありがとうございます!