J'avais effectivement la même crainte mais les résultats que j'obtenais avec PHP étaient identiques à ceux de MySQL

Cela dit, c'est vrai que je préfère utiliser une variable MySQL (d'ailleurs la syntaxe c'est
SET @x := ...; : un seul
@)
J'ai également fait des comparaison de performances pour différentes parties du calcul sur la longitude :
D'abord :
radians(a-b) Versus
radians(a)-radians(b) : la seconde est plus rapide de 19% (0.1490 sec contre 0.1781 sec)
Mais ensuite :
cos(radians(a)-radians(b)) Versus
cos(radians(a))*cos(radians(b)) + sin(radians(a))*sin(radians(b)) : La première est plus rapide de
190% (0.2163 sec contre 0.6291 sec)
Même en optimisant la seconde forme (variable pour le calcul du radians de a et valeurs cos(radians(b)) et sin(radians(b)) pré-calculées (stockées dans la table) : je tombe avec peine à 0.4037 sec (toujours 86% trop lente, d'autant plus que la première forme gagne en vitesse en stockant également le radians de b dans la table)
(Benchmarks réalisés avec
SELECT BENCHMARK(1000000, calcul);)