Existen tres formas básicas para hacer carga masiva de datos:
1) Hacer un insert múltiple en la aplicación (muy eficiente), del tipo
Código:
INSERT INTO tabla
VALUES (a, b, c), (a1, b1, c1), (a2, b2, c2),...;
2) Usando LOAD DATA INFILE, que requiere de un archivo plano, que lo único esencial es que tenga los datos bien formateados conforme los tipos de campo de la tabla destino.
3) Usando INSERT INTO ... SELECT ..., donde la consulta origen bien puede ser una subconsulta de alta complejidad (súmamente eficiente).
Sobre LOAD DATA ver
MySQL con Clase