Uma função MySQL personalizada para calcular a distância de Haversin

Estou criando um script "encontre o meu mais próximo" pelo qual meu cliente me forneceu uma lista de seus locais. Após algumas pesquisas, determinei que a maneira de fazer isso era geocodificar o endereço / código postal fornecido pelo usuário e usar a fórmula Haversine para calcular a distânci

Formula sábio, eu tenho a resposta que eu estava procurandoessa questã (parabéns a vocês). Portanto, não repetirei a longa consulta / fórmula aqui.

O que eu gostaria de fazer, como exemplo - é algo como:

SELECT address, haversine(@myLat,@myLong,db_lat,db_long,'MILES') .....

Isso seria mais fácil de lembrar, mais fácil de ler mais tarde e mais reutilizável, copiando a função em projetos futuros sem ter que reaprender / reintegrar a grande fórmula. Além disso, o último argumento pode ajudar a retornar distâncias em unidades diferente

É possível criar uma função / procedimento de usuário MySQL para fazer isso, e como eu faria isso? (Presumo que é para isso que servem, mas nunca precisei usá-los!)

Ofereceria alguma diferença de velocidade (de qualquer maneira) na versão long

questionAnswers(1)

yourAnswerToTheQuestion