Heim  >  Artikel  >  Datenbank  >  Wie finde ich effizient die nächstgelegenen Speicherorte in einer SQL-Datenbank?

Wie finde ich effizient die nächstgelegenen Speicherorte in einer SQL-Datenbank?

Susan Sarandon
Susan SarandonOriginal
2024-11-08 22:24:02703Durchsuche

How to Efficiently Find Closest Locations in a SQL Database?

Effizientes Finden der nächstgelegenen Standorte in der Nähe eines bestimmten Standorts

Um die Standorte, die einer bestimmten Koordinate am nächsten liegen, effizient zu identifizieren, sollten Sie die darin enthaltene Haversine-Formel verwenden Ihre SQL-Abfrage. Weitere Informationen finden Sie im Google-Tutorial zum Abrufen von Standorten in der Nähe mithilfe von MySQL.

Hier ist ein Beispiel für eine SQL-Anweisung:

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;

Durch die Verwendung der Haversine-Formel in der Datenbank entfällt die Notwendigkeit, alle Unternehmen in die Datenbank zu laden Ihr PHP-Skript. Dies steigert die Leistung erheblich, insbesondere bei der Arbeit mit großen Datenmengen wie Ihren 5.000-Unternehmen.

Das obige ist der detaillierte Inhalt vonWie finde ich effizient die nächstgelegenen Speicherorte in einer SQL-Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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