Проблема в том, что при выполнении каждого запроса, происходит автокомит, что в свою очередь нагружает диск.
Установи autocomit=0 и после выполняй COMMIT, после порции отправленных данных.
Транзакция помогает именно по тому, что старт транзакции устанавливает autocomit в 0, а по завершении возвращает его в исходное состояние.
Ну, и как говорили, объединяй данные в группы. Так же если это не критично и единичная операция, можно отключать проверку внешних связей (foreign_key_checks=0) и уникальных ключей (unique_checks=0)