Последовательность действий:
1. Прочитали сначала ID записей из файла. Выяснили SELECT'ом какие ID есть в базе данных, а какие нет. Это для мониторинга.
2. Загрузили файл в таблицу с помощью " LOAD DATA INFILE" и ключа «REPLACE».
Смотрите синтаксис этой комманды здесь:
www.mysql.ru/docs/man/LOAD_DATA.html
Вот и все, никаких лишних нагрузок. Это будет работать моментально.
Если данных совсем много будет, то поэкспериментируется с дополнительным командами:
SET autocommit = 0;
SET UNIQUE_CHECKS=0;
SET foreign_key_checks = 0;
SET sql_log_bin = 0;
// ваш запрос здесь
commit;
В моей задаче все они используются для ускорения загрузки большого количества данных.