geolocation calculation: calculate points if they are within a radius
===

ok here is the problem:
I want to show to my users the closest geopoints in his vicinity.  

i have arround 55.000 fixed geopoints which could be shown. (I have for all of them long/lat)
dependent on the users location (long/lat) i want to show the closest 20 geopoints. 

so of course i could just calculate all 55.000 geopoints and see if there are 20 within a certain radius of the users lang/lat and rank them afterwards but this would be somehow an overhead to calculate always 55tsd geopoints. 

is there a posibility to "add" 5-miles/kilometers range to a users long and lat and calculate only the distance for those which are within this radius? 

i hope you get what i mean. :) 
Merci 