Вы можете выбрать один из двух подходов: один - предварительно рассчитать преобразования в радианы и триггерные функции и сохранить результаты в новых столбцах таблицы - это избавит вас от выполнения части работы, которая не меняется длякаждый почтовый индекс.Вам все равно придется вычислять расстояние до вашей цели, и вы ничего не можете с этим поделать, поскольку вы, вероятно, хотите, чтобы она работала с любой произвольной целью.
Другой подход должен быть менее точным.Если вы работаете с достаточно небольшой областью, которая не находится рядом с одним из полюсов, вы можете предположить, что мир плоский (серьезно), и использовать математическую систему декартовых координат вместо сферического триггера.
Или, чтобы объединить два подхода, вы можете сделать одноразовое сопоставление всех ваших почтовых индексов в прямолинейной сетке и поверить, что это приближение достаточно для ваших целей.Это будет работать лучше всего, если вы имеете дело с относительно небольшим географическим районом.
Другими словами, вам не нужно общее решение (которое вы используете сейчас), если вы можете сделать некоторые предположения о вашей конкретнойдомен.