# Підвищила продуктивність застосунку географічних карт у 10 разів завдяки стратегічному переходу бази даних з MSSQL на PostgreSQL, включно з фінальним перенесенням даних (cutover), оптимізувавши обробку та безпеку даних.

2022 – 2024

**Ситуація.** Картографічний застосунок організації, що обслуговував просторові запити в реальному часі для багатьох користувачів, мав серйозні вузькі місця продуктивності. Затримки під час рендерингу картографічних шарів і запитів до даних про місцезнаходження позначалися і на користувацькому досвіді, і на надійності бекенд‑сервісів. Система працювала на застарілій базі даних Microsoft SQL Server (MSSQL), яка не мала нативної геопросторової індексації.

**Завдання.** Підвищити продуктивність, масштабованість і безпеку картографічного застосунку, зокрема скоротити затримку запитів і збільшити пропускну здатність просторових операцій.

**Дія.** Проведено стратегічне перенесення бази даних з MSSQL на PostgreSQL із розширенням PostGIS, щоб отримати нативну підтримку геопросторових даних.

- Спроєктовано нову схему, оптимізовану для просторових даних, з індексами GiST і SP‑GiST на стовпцях geometry та geography, які пришвидшили запити.
- Визначено суворі обмеження зовнішніх ключів і перевірки, що забезпечують реляційну цілісність і правила валідації просторових координат.
- Перенесено понад 50 мільйонів просторових записів ETL‑пайплайнами з етапами трансформації, які приводили дані до нових стандартів SRID (EPSG:4326).
- Налаштовано параметри конфігурації PostgreSQL (наприклад, work_mem, effective_cache_size) для оптимальної продуктивності введення‑виведення за паралельного доступу.
- Упроваджено рольове керування доступом (RBAC) і безпеку на рівні рядків, щоб застосовувати політики захисту даних до кількох груп користувачів.

**Результат.** Продуктивність просторових запитів зросла в 10 разів: середній час відповіді скоротився з 2,5 секунди до менш ніж 250 мілісекунд. Навантаження на CPU бекенду знизилося на 65%, а доступність системи в періоди пікового використання зросла. Захищеність системи також посилилася завдяки детальним політикам доступу й обмеженням валідації даних, які зменшили ризик пошкодження просторових даних.

---

- Роль: Інженер даних
- Категорії: [Backend‑розробка](https://data.engineer.company/uk/categories/backend/), [Бази даних](https://data.engineer.company/uk/categories/databases/), [PostgreSQL](https://data.engineer.company/uk/categories/postgresql/), [SQL](https://data.engineer.company/uk/categories/sql/), [Інженерія даних](https://data.engineer.company/uk/categories/data-engineering/), [Пайплайни даних (ETL/ELT)](https://data.engineer.company/uk/categories/data-pipelines/), [Безпека](https://data.engineer.company/uk/categories/security/), [Оптимізація продуктивності](https://data.engineer.company/uk/categories/performance/), [Міграції та модернізація](https://data.engineer.company/uk/categories/migration/), [GIS / геопросторові дані](https://data.engineer.company/uk/categories/gis/)
- Послуги: [GIS та геопросторові рішення](https://data.engineer.company/uk/services/gis-geospatial/), [Оптимізація продуктивності баз даних](https://data.engineer.company/uk/services/database-performance/), [Міграція та модернізація баз даних](https://data.engineer.company/uk/services/database-migration/)

<https://data.engineer.company/uk/portfolio/improved-geographical-map-application-performance-by-10x-through-6/>
