Используйте нативный путь bulk-load базы (Postgres COPY, MySQL ), разбейте файл на чанки, загружаемые в с индексами и ограничениями, затем один раз перестройте индексы и слейте — и сделайте всю работу , чтобы сбой можно было продолжить без дублирования строк.
