Использовал ли ты расширения PostgreSQL для работы с геоданными, например PostGIS
Что проверяют
Был ли у вас реальный опыт с пространственными данными или вы знаете PostGIS по названию. Это видно по первому уточнению: чем geometry отличается от geography, какой индекс вы строили и как искали ближайшие точки.
Как отвечать
Если опыт был, стройте ответ вокруг своей задачи: что хранили, какие запросы, какой объём и что получилось в цифрах. Каркас, на который стоит опереться:
- типы и SRID:
geographyсчитает на сфере и отдаёт расстояния в метрах,geometryработает в единицах своей системы координат. Для GPS это SRID 4326 (WGS 84), и расстояние вgeometry(Point, 4326)выйдет в градусах; - индекс: GiST по геоколонке.
ST_DWithin(geom, point, radius)индекс использует, аST_Distance(...) < radiusвWHEREнет; - ближайшие объекты:
ORDER BY geom <-> point LIMIT 10, KNN-поиск по GiST-индексу; - операции:
ST_IntersectsиST_Containsдля попадания точки в зону доставки,ST_Transformдля перевода между проекциями; - Python-стек: GeoDjango (
django.contrib.gis,PointField) или GeoAlchemy2 поверх SQLAlchemy, Shapely для геометрии в коде, GeoPandasread_postgisдля анализа, импорт шейп-файлов черезogr2ogrилиshp2pgsql.
Цифры называйте свои: сколько объектов и как изменилось время запроса после индекса по EXPLAIN ANALYZE, а не на глаз.
Если опыта не было, скажите прямо и покажите, что у вас рядом: считали расстояния формулой гаверсинусов в Python, работали с H3 или понимаете, с чего начали бы: CREATE EXTENSION postgis, geography для точек, GiST-индекс, ST_DWithin. Честное «не использовал, но подошёл бы так» ценится выше выдуманной истории.
Где спотыкаются
Путают порядок координат: ST_MakePoint принимает сначала долготу, потом широту. Точки уезжают в другое полушарие, и никто не замечает, пока их не нарисуют на карте.
Считают расстояние в geometry с SRID 4326, получают градусы вместо метров и подбирают «радиус 0.01» на глаз.
Придумывают опыт по шаблону STAR с фразой «значительно улучшили производительность». Второе уточнение про KNN или SRID такую историю разваливает.