私の意見では、WHERE句は数学が関係しているため遅くなり、WHERE句で関数を使用すると、データベースがインデックスを使用してクエリを高速化できなくなります。したがって、実際には、データベースを作成し、クエリを実行するたびに、すべての行で大圏計算を実行します。
個人的には、探している範囲に等しい辺を持つ正方形のTopLeft座標とBottomRight座標(ピタゴラスを使用して粗雑に計算する必要があるだけです)を計算してから、の小さいサブセットに対してより複雑なWHERE句テストを実行します。その緯度/経度の正方形内にあるレコード。
データベースにLat&Longのインデックスがある場合、クエリ
WHERE MyLat >= @MinLat AND MyLat <= @MaxLat AND MyLong >= @MinLong AND MyLong <= @MaxLong
非常に効率的である必要があります
(私はMySQLについては特に知識がなく、MS SQLについてのみ知識があることに注意してください)