Петр Сальников › spbcod Сбер ID
Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.
Рейтинг
332
№ 3 337 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Санкт-Петербург
Опыт работы
28 лет
На сайте с
2023 года
Юридический статус
ИП

Миграция базы данных более 100 ГБ из MySQL в PostgreSQL с настройкой пространственных индексов для геоданных

Описание

Проект WildTracks (wildtracks.pro) — система трекинга животных с большими объемами пространственных данных. Исходная база на MySQL (около 100 ГБ) перестала справляться с нагрузкой:
- Медленные гео-запросы — поиск точек в радиусе, треков животных, пересечений территорий выполнялся десятки секунд
- Отсутствие нативной поддержки геоданных — MySQL хранила координаты как отдельные поля lat/lon, все расчеты делались на PHP
- Сложность масштабирования — индексы по координатам работали неэффективно
- Риск потери данных — отсутствие транзакционной целостности для сложных операций

Требовалось:
- Перенести 100+ ГБ данных без потерь и с минимальным простоем
- Конвертировать структуру из MySQL в PostgreSQL с сохранением всех связей
- Настроить PostGIS для эффективной работы с геоданными
- Создать пространственные индексы для быстрого поиска по координатам
- Оптимизировать запросы под новую СУБД

Обеспечить простое обновление (минимальный downtime)

Решение

Разработал поэтапный план миграции с минимальным простоем:

/migration/
├── 1_schema_conversion/ # Конвертация схемы MySQL -> PostgreSQL
├── 2_data_migration/ # Перенос данных
├── 3_postgis_setup/ # Настройка PostGIS и пространственных индексов
├── 4_query_optimization/ # Оптимизация запросов под PostgreSQL
├── 5_validation/ # Проверка целостности данных
└── 6_switchover/ # Переключение на новую БД

Результат

Технические результаты
✅ Успешный перенос 100+ ГБ данных без потерь
✅ Создание пространственных индексов (GIST) для гео-запросов
✅ Партиционирование таблиц по дате для ускорения запросов
✅ Оптимизация типовых запросов с использованием PostGIS
✅ Создание функций для часто используемых операций
✅ Настройка мониторинга производительности
✅ Автоматические бэкапы и настройка репликации

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Разработка интернет-магазина профессиональных ксилофонов и маримб Xyloland.ru
Разработка интернет-магазина профессиональных ксилофонов и маримб Xyloland.ru
71
Веб-разработка и IT Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API AliExpress
Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API AliExpress
96
Веб-разработка и IT Разработка альтернативной системы мониторинга движения товаров и цен для 1С-Битрикс
Разработка альтернативной системы мониторинга движения товаров и цен для 1С-Битрикс
82
Веб-разработка и IT Разработка мультиязычного API для получения названий месяцев на разных языках мира (Symfony)»
Разработка мультиязычного API для получения названий месяцев на разных языках мира (Symfony)»
68