PostGIS в реальных задачах: ускорение поиска в радиусе
Когда в системе есть гео-сущности (тарифы, услуги), обычные WHERE lat BETWEEN... быстро перестают работать.
🗺 Что делал: • Включил расширение PostGIS в PostgreSQL 17 • Использовал тип GEOMETRY(Point, 4326) для хранения координат • Создал GiST-индекс по гео-полю для ускорения пространственных запросов • Применил функцию ST_DWithin для поиска в радиусе вместо ручного расчёта расстояний
📊 Результат: • Поиск услуг в радиусе стал выполняться быстрее • Индекс занимал малый процент от размера таблицы — приемлемая плата за скорость • Запросы стали читаемее: ST_DWithin(geom, point, 50000) вместо формулы гаверсинуса
🔧 Стек: PostgreSQL 17, PostGIS, GeoAlchemy2, Shapely, SQLAlchemy 2.0
💡 Важно: Индексы ускоряют чтение, но замедляют запись. Ключ — в балансе и понимании паттернов доступа к данным.
#PostgreSQL #PostGIS #GeoData #Python #Backend #Database #OpenToWork