ここにいくつかのアイデアがありますが、正確な状況によっては当てはまらないものもあります。
- 緯度と経度をラジアンに変換して、それを行に保存することもできます。これにより、これらの計算のコストを節約できます(実際には、データを保存するときにコストが1回発生します)。
- テーブルが非常に大きい場合は、Haversinceの数式ではなく、単純な線形距離の計算を使用して、Haversinceの数式を適用する結果を制限できます。
- 最初のフィルターとして適切な他のデータ(国/地域など)がテーブルにある場合は、それを最初に適用できます。
- 結合を並べ替えて、距離フィルターの後に適用されるようにして、資格のないデータに結合のコストがかからないようにすることができます。