ホームページ > データベース > mysql チュートリアル > Haversine 公式はデータベース内の近くの場所の検索をどのように最適化できますか?

Haversine 公式はデータベース内の近くの場所の検索をどのように最適化できますか?

Patricia Arquette
リリース: 2024-11-07 19:53:03
オリジナル
1071 人が閲覧しました

How Can the Haversine Formula Optimize Finding Nearby Locations in a Database?

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 マイル (または別の目的の半径) より遠い場所をフィルターで除外します。

利点

この最適化されたアプローチには、いくつかの利点があります。

  • データベース負荷の削減: 最も近い場所のみを選択するため、データベースから取得するレコードの数が最小限に抑えられます。
  • パフォーマンスの向上:はデータベース内で実行され、PHP で距離を計算するオーバーヘッドを回避します。
  • スケーラビリティ: 多数の事業所を処理する場合でも、効率性は維持されます。

結論

Haversine 式を SQL クエリに組み込むことで、特定のポイントに最も近い位置を見つける効率が大幅に向上し、パフォーマンスの問題を効果的に解決し、スケーラブルなソリューションを提供できます。大規模なデータベースの場合。

以上がHaversine 公式はデータベース内の近くの場所の検索をどのように最適化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート