Powiedzmy na przykład, że mam tabelę:
Business(BusinessID, Lattitude, Longitude)
Wszystkie są oczywiście indeksowane. Jest też 1 milion rekordów
Powiedzmy, że chcę znaleźć firmy najbliższe 106,5, na przykład, jak mam to zrobić?
Jeśli zrobię
SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
na przykład lub jeśli tak
SELECT *
FROM Business
TOP 20
Teoretycznie komputer będzie musiał obliczyć odległość dla wszystkich dziwactw, podczas gdy w praktyce tylko te z szerokością i długością geograficzną w określonym zakresie, który powinien być obliczony.
Jak mogę zrobić to, co chcę, na przykład w PhP lub SQL?
Jestem wdzięczny za dotychczasową odpowiedź. Używam mysql i nie mają nic bardziej wydajnego niż oczywiste rozwiązanie. Przestrzeń MySQL również nie ma funkcji obliczania odległości.