Я тебе давно говорил) отделяй действия. Вставки это одно, обновление другое, удаление третье.
Все можно делать множественными запросами с одной транзакцией, а выборки агрегировать. Операции записи одни из самых дорогих в бд.
А долбить базу updateOrCreate, на два миллиона записей, это примерно 4 миллиона запросов SELECT + UPDATE, SELECT + INSERT