Описание проекта
Задача состоит из двух связанных частей. Первая — оптимизация существующей системы: сбор и разбор логов медленных запросов, изучение планов выполнения, предложения по индексам, переписыванию запросов и точечной доработке схемы (нормализация там, где это помогает, денормализация или сводные таблицы там, где это эффективнее). Каждую рекомендацию мы хотим видеть подкреплённой цифрами «до и после» на реалистичной копии наших данных. Вторая часть — плановая миграция между MySQL и PostgreSQL. Её нужно рассматривать как боевую операцию с нулевой потерей данных и минимальным простоем: сопоставление типов данных и коллаций, перенос хранимой логики и ограничений, сверка количества строк и контрольных сумм на обеих сторонах, а также проверенный сценарий отката на случай сбоя.
Сначала вы работаете на тестовом окружении и согласуете с нашей командой каждый шаг на боевом сервере. Для нас важны понятная коммуникация, воспроизводимые скрипты вместо разовых ручных правок и честное обсуждение компромиссов. Просим приложить релевантный опыт работы с крупными наборами данных и указать инструменты, которые вы предпочитаете для конвертации схемы и проверки целостности. Результаты должны быть задокументированы так, чтобы наши разработчики могли поддерживать их дальше.
— Полный аудит медленных запросов с приоритизацией и шагами воспроизведения
— План индексов, переписанные запросы и предложения по схеме с результатами замеров
— Runbook миграции: сопоставление типов, порядок переключения и откат
— Автоматическая сверка строк, контрольных сумм и ссылочной целостности после переноса
— Документация по передаче и короткий разбор для нашей команды разработки