Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie finde ich effizient Standorte in der Nähe in einer Datenbank?

Barbara Streisand
Freigeben: 2024-11-08 09:15:02
Original
865 Leute haben es durchsucht

How to Efficiently Find Nearby Locations in a Database?

Effiziente Suche nach Standorten in der Nähe

Beim Umgang mit einer großen Anzahl von Standorten, die in einer Datenbank gespeichert sind, kann es hilfreich sein, die Standorte zu finden, die einem bestimmten Punkt am nächsten liegen zu einer rechenintensiven Aufgabe werden. Um dieses Problem zu lösen, sollten Sie die Haversine-Formel direkt in Ihrer SQL-Abfrage nutzen, wie im Google-Tutorial zum Abrufen der nächstgelegenen Standorte in einer MySQL-Datenbank gezeigt:

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;
Nach dem Login kopieren

Durch die Integration der Entfernungsberechnung in Ihre SQL-Abfrage Sie können die Anzahl der in Ihrem PHP-Skript ausgeführten Vorgänge minimieren. Dieser Ansatz verlagert die intensive Berechnung auf die Datenbank selbst, was zu einer schnelleren und effizienteren Möglichkeit führt, die Standorte in der Nähe abzurufen.

Das obige ist der detaillierte Inhalt vonWie finde ich effizient Standorte in der Nähe in einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage