@furyon

Как ускорить запрос выборки геоданных в PostgreSQL?

К примеру есть таблица адресов компаний из 3-х полей: company_id, lat, lon.
Необходимо получить расстояния до ближайшего адреса каждой из компаний.

Для работы с геоданными использую расширения cube и earthdistance.
Выполняю запрос:
SELECT
 company_id,
 MIN(earth_distance(ll_to_earth(lat,lon), ll_to_earth(53.96,83.96))) AS distance
FROM companies
GROUP BY company_id;

Запрос делает что надо, но медленно. GIST индекс типа
CREATE INDEX i_name on companies USING gist(ll_to_earth(lat, lon));
не помогает.

Есть ли способы ускорения такого запроса?

PS
Задал вопрос на SO https://stackoverflow.com/questions/48146004/how-t...
Ответ отмеченный как решение позволил увеличить скорость скрипта в 3 раза.
  • Вопрос задан
  • 335 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Fixid
Используйте PostGIS.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы