Sushkov: multiprocessing - к потокам не относится. Как следует из названия, это "многопроцессность". Библиотека запускает для каждой задачи отдельный процесс интерпретатора.
StasShk: параметр related_name='images' поля ForeignKey задаёт обратную связь. Фреймворк создаст в экземпляре класса Product атрибут images, содержащий менеджер модели ProductImage.
Сергей Горностаев
@sergey-gornostaev Автор вопроса, куратор тега Django
Roman Kitaev: спасибо за то, что натолкнул меня на мысль. Я её развил. Разбиваю данные на куски и скармливаю потокам gevent, которые заливают их в базу в контексте транзакции.
Сергей Горностаев
@sergey-gornostaev Автор вопроса, куратор тега Django
Roman Kitaev: bulk create, как я уже сказал, мне не подходит из-за разветвлённости данных. А применение транзакций для ускорения - это старинный рецепт, который есть в каждой статье на тему orm performance.
Сергей Горностаев
@sergey-gornostaev Автор вопроса, куратор тега Django
В каждой записи не просто строка или цифра. Там словарь, по которому создаются объекты, который в последствии записываются в базу. Сколько конкретно объектов в одной записи неизвестно. Взаимосвязи между ними тоже неизвестны.