Koordinaten innerhalb eines Bereichs mit MySQL finden
Um die Datenbankleistung zu verbessern und den Verarbeitungsaufwand zu reduzieren, ist es wünschenswert, Abfragen zu optimieren, die bestimmte Daten innerhalb eines Bereichs abrufen einen bestimmten Bereich. In diesem Szenario verfügen Sie über eine Datenbank mit 100.000 Adressen, jede mit ihren Breiten- und Längenkoordinaten. Ihr Ziel besteht darin, nur die Adressen anzuzeigen, die sich in einem Umkreis von 5 Meilen um den Standort eines bestimmten Benutzers befinden, und so die Ergebnisse effektiv von 100.000 auf etwa 5 oder 6 einzugrenzen.
Um dieses Problem effizient zu lösen, können Sie die verwenden Haversine-Formel direkt in Ihrer MySQL-Abfrage. Diese mathematische Formel berechnet den Abstand zwischen zwei Punkten auf einer Kugel anhand ihrer jeweiligen Breiten- und Längengrade.
So können Sie die Haversine-Formel in Ihre Abfrage integrieren:
$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";
In dieser Abfrage Ersetzen Sie $lat und $lng durch die Breiten- und Längenkoordinaten des Standorts des Benutzers. Das Ergebnis dieser Abfrage ist eine Liste von Adressen mit ihrer Entfernung vom Standort des Benutzers, der in der Entfernungsspalte angegeben ist. Mithilfe dieser Liste können Sie dann die Adressen herausfiltern, die in den 5-Meilen-Bereich fallen.
Durch die direkte Anwendung der Haversine-Formel in MySQL können Sie die Anzahl der abgerufenen Datensätze erheblich reduzieren und die Leistung Ihrer Adressen verbessern Datenbankbetrieb. Diese Methode stellt sicher, dass nur die relevanten Adressen zurückgegeben werden, wodurch unnötige Verarbeitung minimiert und die Reaktionsfähigkeit Ihrer Anwendung verbessert wird.
Das obige ist der detaillierte Inhalt vonWie kann man mithilfe von MySQL effizient Koordinaten in einem Umkreis von 5 Meilen finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!