В джанго, при работе с удаленным сервером postgres, наблюдаются сильные тормоза. Как победить?
Испробованные варианты:
- Локальный сервис postgres на Mac M1 - время выполнения миграции менее 2 мин.
- Сервер в локальной сети - время выполнения миграции ~ 2 мин.
- Удаленный сервер (в офисе/в облаке), подключение через WireGuard/проброс портов через SSH. Время выполнения той же самой миграции 1,5 часа
- На облачном сервере открыл порт 5432 в интернет и подключался напрямую - время не изменилось - 1,5 часа.
На всех серверах debian 12. При развертывании postgres 15 настройки оставляю по дефолту.
При миграции в Django, необходимо было перенести информацию в новую таблицу. Запись в новую таблицу проходила по одной за раз: NewObject(*params).save() При таком подходе, для добавления каждой записи на postgres улетает отдельный запрос. В условиях пинга ~50 мсек, время работы увеличилось до 1,5 часов. В итоге миграцию пришлось переписать и добавление всех записей сделать одним запросом к Postgres, используя метод bulk_create в модели Django. Время сократилось до 30 сек.