Schnellste Methode, um die Entfernung zwischen zwei Lat / Long-Punkten zu ermitteln
Ich habe derzeit knapp eine Million Standorte in einer MySQL-Datenbank, alle mit Längen- und Breitengradangaben.
Ich versuche den Abstand zwischen einem Punkt und vielen anderen Punkten über eine Abfrage zu ermitteln. Es ist nicht so schnell, wie ich es mir wünsche, besonders bei mehr als 100 Treffern pro Sekunde.
Gibt es dafür eine schnellere Abfrage oder möglicherweise ein anderes schnelleres System als mysql? Ich benutze diese Abfrage:
<code>SELECT name, ( 3959 * acos( cos( radians(42.290763) ) * cos( radians( locations.lat ) ) * cos( radians(locations.lng) - radians(-71.35368)) + sin(radians(42.290763)) * sin( radians(locations.lat)))) AS distance FROM locations WHERE active = 1 HAVING distance < 10 ORDER BY distance; </code>
Hinweis: Der angegebene Abstand ist inMeilen. Wenn Sie brauchenKilometer, benutzen6371
anstatt3959
.