Бих предложил да ограничите местоположението си с някои условия, които могат да бъдат индексирани. Можете да направите това лесно, тъй като вероятно не искате да изброявате някого от САЩ до някой в Париж като най-близко местоположение.
Само с малка модификация на заявката RustamIS можете да елиминирате повечето от неподходящите местоположения.
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
Така дефинирахте правоъгълник, където искате да търсите най-близките хора.