InnoDB tiene soporte para transacciones, no está utilizando transacciones explícitas, por lo que innoDB debe realizar una confirmación después de cada declaración ("realiza un vaciado de registros en el disco para cada inserción" ).
Ejecute este comando antes de su bucle:
START TRANSACTION
y esto después de hacer un bucle
COMMIT