Angenommen, ich habe eine Tabelle:
Business(BusinessID, Lattitude, Longitude)
Alle sind natürlich indiziert. Es gibt auch 1 Million Datensätze
Angenommen, ich möchte Unternehmen finden, die 106,5 am nächsten liegen. Wie würde ich das tun?
Wenn ich mache
SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
zum Beispiel oder wenn ich es tue
SELECT *
FROM Business
TOP 20
Theoretisch muss der Computer die Entfernung für alle Geschäfte berechnen, während in der Praxis nur diejenigen mit Längen- und Breitengraden innerhalb eines bestimmten Bereichs berechnet werden sollten.
Wie kann ich beispielsweise in PhP oder SQL tun, was ich will?
Ich bin dankbar für die bisherige Antwort. Ich benutze MySQL und sie haben nichts effizienter als die offensichtliche Lösung. MySQL räumlich hat auch keine Funktion zum Berechnen der Entfernung.