Stai usando la formula Legge sferica dei coseni , non la Formula Haversine (che è leggermente più lento).
Fare i calcoli in MySQL sarà probabilmente molto più veloce, ti consiglio di leggi questa domanda Ho chiesto tempo fa, per quanto riguarda le ottimizzazioni della velocità dovresti assolutamente leggere l'ottimo Geo Proximity Cerca con MySQL carta, prestare particolare attenzione alle pagine 8-14 e 19 .