ランドマークの地理座標(緯度+経度)と位置情報(都市、州、国)を含む約5,000行のテーブルがあります。このテーブルを使用して、ユーザーの位置に最も近い場所(たとえば、近くの公園など)を取得します。
今のところ、ユーザーのgps座標を逆コーディングして、都市、州、国を取得することでクエリをフィルタリングしています(AndroidのGeocoderを使用しています)。ただし、Geocoderがときどき失敗するため、クラウドサーバーのSQLクエリが結果を返さないことに気付きました。
ですから、毎回良い結果が得られるように、逆コーディングをスキップすることを考えています。次のように、地理座標を使用して必要なものを取得します。
SELECT p.placeId, p.name,( 6371 * acos( cos( radians($latitude) ) * cos( radians( p.latitude ) ) * cos( radians( p.longitude ) - radians($user_longitude) ) + sin( radians($user_latitude) ) * sin( radians( p.latitude ) ) ) ) AS distance ORDER BY distance
ただし、私のテーブルは毎日サイズが大きくなり、最終的には500,000まで大きくなる可能性があります。テーブルがそのサイズに拡大縮小されると、各行で距離計算を実行するとパフォーマンスの問題になる可能性があると思いますか?それとも、500,000行のテーブルは実際には問題ではありませんか?