まず第一に、地理空間データがたくさんある場合は、このような計算ではなく、mysqlの地理空間拡張機能を使用する必要があります。次に、空間インデックスを作成 できます。 これにより、多くのクエリが高速化され、上記のように長く引き出されたクエリを作成する必要がなくなります。
ST_Distance または、ST_withinとともに対象の半径を使用してジオメトリを作成すると、良好な結果が得られる可能性があり、現在よりもはるかに高速になる可能性があります。ただし、これを達成するための最良かつ最速の方法は、 ST_Dwithin mysqlにはまだ実装されていません。