Haversine 公式を使用した近くの場所の検索
データベースに保存されている大量の事業所の場所を扱う場合、検索の効率が向上します。特定の点に最も近いものが重要になります。すべての位置を取得し、距離を 1 つずつ計算する現在のアプローチは、企業の数が増えると法外に遅くなる可能性があります。
Haversine 公式の紹介
Haversine 公式は次のことを提供します。地球の曲率を考慮して、地球上の 2 点間の距離を計算するより効率的な方法です。これを SQL クエリに組み込んで、最も近い場所を直接取得できます。
最適化された SQL クエリ
Haversine 式を使用した最適化された SQL クエリは次のようになります。
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
このクエリでは、37 と -122 はそれぞれ指定された場所の緯度と経度を表します。距離列には、指定された場所と各ビジネスの間の距離が含まれます。 HAVING 句は、25 マイル (または別の目的の半径) より遠い場所をフィルターで除外します。
利点
この最適化されたアプローチには、いくつかの利点があります。
結論
Haversine 式を SQL クエリに組み込むことで、特定のポイントに最も近い位置を見つける効率が大幅に向上し、パフォーマンスの問題を効果的に解決し、スケーラブルなソリューションを提供できます。大規模なデータベースの場合。
以上がHaversine 公式はデータベース内の近くの場所の検索をどのように最適化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。