оптимально по быстродействию - LOAD DATA INFILE. но "минус" - валидацию не выполнить, и обновление тоже
если нужна валидация - надо парсить самостоятельно. Для ускорения SQL делайте вставки пакетами
insert ignore ..... values (),(),() ...
если нужно обновление
insert ignore ..... values (),(),() ... on duplicate key update
если скрипт обрубается лимитами - создавайте задание, и обрабатывайте по крон
800К это не много.