Hace poco tuve que hacer un programa que básicamente hacia un montón de Insert en una tabla de MySql y el proceso tardaba muchísimo (te podías ir a tomar un café

), hasta que descubrí que MySql permite la inserción múltiple, es decir, insertar varios registros de una vez.
Por ejemplo (ayuda de
MySQL):
Código SQL
[-]
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Podrías probar a construir tu mismo la consulta e insertar todos los productos de la factura en una sola sentencia.