地理位置情報範囲クエリに対するデータベース クエリの最適化
地理データを含む大規模なデータベースを扱う場合、関連するものだけを取得するようにクエリを最適化することが重要になります。特定の範囲内のレコード。このようなシナリオの 1 つは、特定の場所から特定の半径内の住所を選択することです。この記事では、MySQL のハバーサイン公式を使用してこの問題を効率的に解決する方法を説明します。
ハバーサインの公式
ハバーサインの公式は、2 点間の距離を計算するために使用される数学方程式です。球体上で。地理データのコンテキストでは、2 つの緯度と経度のペア間の距離を決定できます。
MySQL Query
Haversine 式を使用すると、指定された範囲内のアドレスのみを選択する MySQL クエリ。以下のクエリは、このアプローチを示しています。
<code class="sql">SELECT *, (3959 * acos(cos(radians(?)) * cos(radians(lat)) * cos(radians(lng) - radians(?)) + sin(radians(?)) * sin(radians(lat)))) AS distance FROM your_table HAVING distance < ?;</code>
このクエリでは、?はユーザーの位置(原点)の緯度経度座標を表し、?最大航続距離を海里 (3959 を 6371 に置き換える場合はキロメートル) で表します。
このアプローチの利点
この MySQL ソリューションには、次のような利点があります。
追加のヒント
以上がMySQL で地理位置情報範囲検索のデータベース クエリを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。