INSERT и UPDATE становятся все медленнее, когда число строк в таблице с индексом увеличивается. Таблицы Innodb даже медленнее, чем таблицы MyISAM для вставок, и опция отложенной записи ключа недоступна.
Самый эффективный способ ускорить процесс - это сначала сохранить данные в плоский файл, а затем выполнить LOAD DATA
, это примерно в 20 раз быстрее.
Второй вариант - создать временную таблицу в памяти, загрузить в нее данные, а затем выполнить INSERT INTO SELECT в пакетном режиме. То есть, когда у вас есть около 100 строк в вашей временной таблице, загрузите их в постоянную.
Кроме того, вы можете получить небольшое улучшение в скорости, переместив файл индекса на отдельный физический жесткий диск от того, где хранится файл данных. Также попробуйте переместить любые журналы бина на другое устройство. То же самое относится и к временному местоположению файла.