Tôi đề nghị giới hạn vị trí của bạn bằng một số điều kiện có thể được lập chỉ mục. Bạn có thể làm điều đó dễ dàng vì bạn có thể không muốn liệt kê ai đó từ Hoa Kỳ đến ai đó ở Paris là địa điểm gần nhất.
Chỉ với một chút sửa đổi đối với truy vấn RustamIS, bạn có thể loại bỏ hầu hết các vị trí không liên quan.
select * from gps_location_table t
where
t.x between 20.134554 and 20.334554 and t.y between 56.11455255 and 56.31455255
order by
sqrt((t.x - 20.234554)*(t.x - 20.234554) + (t.y - 56.21455255)*(t.y - 56.21455255)
desc
Vì vậy, bạn đã xác định một hình chữ nhật mà bạn muốn tìm kiếm những người gần nhất.