Ví dụ: giả sử tôi có một bảng:
Business(BusinessID, Lattitude, Longitude)
Tất cả đều được lập chỉ mục tất nhiên. Ngoài ra có 1 triệu hồ sơ
Nói rằng tôi muốn tìm các doanh nghiệp gần 106,5, ví dụ, làm thế nào để tôi làm như vậy?
Nếu tôi làm
SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
ví dụ, hoặc nếu tôi làm
SELECT *
FROM Business
TOP 20
Về lý thuyết, máy tính sẽ phải tính toán khoảng cách cho tất cả các biz trong khi thực tế chỉ những người có mạng và kinh độ trong một phạm vi nhất định cần được tính toán.
Vì vậy, làm thế nào tôi có thể làm những gì tôi muốn trong PhP, hoặc SQL chẳng hạn?
Tôi biết ơn với câu trả lời cho đến nay. Tôi đang sử dụng mysql và họ không có gì hiệu quả hơn giải pháp rõ ràng. Không gian MySQL cũng không có chức năng tính toán khoảng cách.