Heim > Datenbank > MySQL-Tutorial > Wie optimiert man Georaumabfragen in MySQL für Adressen innerhalb eines Umkreises?

Wie optimiert man Georaumabfragen in MySQL für Adressen innerhalb eines Umkreises?

DDD
Freigeben: 2024-11-02 03:23:02
Original
370 Leute haben es durchsucht

How to Optimize GeoSpatial Queries in MySQL for Addresses Within a Radius?

MySQL innerhalb des geografischen Bereichs für Karten

Das Abfragen geografischer Daten aus einer großen Datenbank zur Anzeige bestimmter Standorte innerhalb eines bestimmten Bereichs ist eine häufige Herausforderung in Kartierungsanwendungen. In dieser Frage wird untersucht, wie der Abruf von Adressen innerhalb eines 5-Meilen-Radius um den angegebenen geografischen Standort eines Benutzers optimiert werden kann.

Haversine-Formel zur Entfernungsberechnung

Zur Bestimmung der Entfernung zwischen zwei Punkten auf der Erdoberfläche wird die Haversine-Formel verwendet. Diese mathematische Formel berechnet die Großkreisentfernung unter Berücksichtigung der Erdkrümmung sowie der Breiten- und Längengrade der Punkte.

Abfrageoptimierung mit Haveline-Formel

Nutzung der Mit der Haversine-Formel ruft die bereitgestellte MySQL-Abfrage nur die Adressen ab, die in den gewünschten Bereich fallen:

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

Parameter und Variablen

  • $lat **, **$lng: Koordinaten des aktuellen Standorts des Benutzers.
  • lat, lng: Spalten in der Tabelle, die die Koordinaten jeder Adresse enthalten .
  • 3959: Erdradius in Meilen (umrechnen in 6371 für Kilometer).
  • Entfernung: Berechnete Entfernung zwischen dem Standort des Benutzers und jeder Adresse .

Ergebnis

Die Abfrage gibt eine Liste von Adressen mit ihren jeweiligen berechneten Entfernungen aus. Die HAVING-Klausel stellt sicher, dass nur die Adressen innerhalb des angegebenen 5-Meilen-Radius abgerufen werden, was zu einer effizienteren und gezielteren Auswahl von Datensätzen führt. Dieser Ansatz reduziert die Menge der übertragenen und verarbeiteten Daten erheblich und verbessert so die Gesamtleistung der Kartenanwendung.

Das obige ist der detaillierte Inhalt vonWie optimiert man Georaumabfragen in MySQL für Adressen innerhalb eines Umkreises?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage