Testa att byta datatyp till FLOAT.
Dina index blir väl som sagt inte så effektiva eftersom queryn ändå måste söka igenom allt för att göra beräkningar.
Tyvärr är det ju även svårt att cahcea den typen av query då det är sällan man får exakt samma koordinater som indata vilket gör att det blir få cahce-träffar.
Har du en valtrafikerad site kanske du kan lösa det på något sätt med någon sökmotorsmjukvara som t.ex. Solr eller ElasticSearch. Det kommer dock innebära en hel del konfigurerade.
Edit igen: Det verkar finnas en del om man söker lite:
http://www.google.se/search?q=Elasti...h+geo+distance
http://www.elasticsearch.org/guide/r...nce-facet.html