# Підвищила продуктивність застосунку географічних карт у 10 разів завдяки стратегічному переходу бази даних з MSSQL на PostgreSQL, включно з data 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://engineer.company/uk/categories/backend/), [Бази даних](https://engineer.company/uk/categories/databases/), [PostgreSQL](https://engineer.company/uk/categories/postgresql/), [SQL](https://engineer.company/uk/categories/sql/), [Інженерія даних](https://engineer.company/uk/categories/data-engineering/), [Пайплайни даних (ETL/ELT)](https://engineer.company/uk/categories/data-pipelines/), [Безпека](https://engineer.company/uk/categories/security/), [Оптимізація продуктивності](https://engineer.company/uk/categories/performance/), [Міграції та модернізація](https://engineer.company/uk/categories/migration/), [GIS / геопростір](https://engineer.company/uk/categories/gis/)
- Послуги: [GIS та геопросторові рішення](https://engineer.company/uk/services/gis-geospatial/), [Оптимізація продуктивності баз даних](https://engineer.company/uk/services/database-performance/), [Міграція та модернізація баз даних](https://engineer.company/uk/services/database-migration/)

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