ホームページ >データベース >mysql チュートリアル >データベース内の近くの場所を効率的に見つけるにはどうすればよいですか?

データベース内の近くの場所を効率的に見つけるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-08 09:15:02894ブラウズ

How to Efficiently Find Nearby Locations in a Database?

近くの場所を効率的に見つける

データベースに保存されているかなりの数の場所を扱う場合、特定の地点に最も近い場所を見つけると、計算コストのかかるタスクになります。この問題に対処するには、MySQL データベース内の最も近い場所を取得する Google のチュートリアルで実証されているように、SQL クエリで Haversine 式を直接利用することを検討してください。

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;

距離計算を SQL クエリに統合することで、 PHP スクリプトで実行される操作の数を最小限に抑えることができます。このアプローチにより、集中的な計算がデータベース自体にオフロードされ、その結果、近くの場所を取得するためのより高速かつ効率的な方法が得られます。

以上がデータベース内の近くの場所を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。