Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit MySQL effizient Adressen innerhalb eines bestimmten Bereichs abrufen?

Wie kann ich mit MySQL effizient Adressen innerhalb eines bestimmten Bereichs abrufen?

Susan Sarandon
Freigeben: 2024-11-03 15:13:03
Original
257 Leute haben es durchsucht

How to Efficiently Retrieve Addresses within a Specified Range using MySQL?

Effizientes Abrufen von Adressen innerhalb eines bestimmten Bereichs mit MySQL

Um effektiv Adressen innerhalb eines 5-Meilen-Radius von einem bestimmten Standort abzurufen, ist es das Richtige Es ist ineffizient, alle 100.000 Adressen abzurufen und die Entfernung in Java zu berechnen. Stattdessen bietet MySQL mit der Haversine-Formel eine geeignete Lösung.

Die Haversine-Formel berechnet den Großkreisabstand zwischen zwei Punkten auf einer Kugel, in diesem Fall dem Standort des Benutzers und jeder Adresse. Mit dieser Formel können Sie eine MySQL-Abfrage wie folgt erstellen:

<code class="sql">SELECT *, ( 3959 * acos( cos( radians($lat) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians($lng) ) + sin( radians($lat) ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5;</code>
Nach dem Login kopieren

In der obigen Abfrage stellen $lat und $lng die Koordinaten des Benutzers dar, während lat und lng die Adresskoordinaten darstellen. Durch Anwendung der Haversine-Formel berechnet die Abfrage die Entfernung zwischen jeder Adresse und dem Standort des Benutzers und wählt nur diejenigen innerhalb des 5-Meilen-Bereichs aus.

Mit diesem Ansatz können Sie effizient die Adressen abrufen, die benötigt werden auf der Karte angezeigt und erspart gleichzeitig die rechenintensive Aufgabe, Entfernungen für alle 100.000 Adressen zu berechnen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit MySQL effizient Adressen innerhalb eines bestimmten Bereichs abrufen?. 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