Popolare tabella da file .sql

peppeocchi

Utente Attivo
20 Apr 2013
30
0
0
Salve,
devo popolare una tabella del mio database tramite file .sql remoto.
Il file .sql ha una struttura del tipo:
INSERT INTO TABLE VALUES(X,Y,Z,....);
INSERT INTO TABLE VALUES(X,Y,Z,....);
INSERT INTO TABLE VALUES(X,Y,Z,....);
INSERT INTO TABLE VALUES(X,Y,Z,....);

in media sono 18.000 righe.

Ho circa 25 tabelle da popolare con file diversi, tutti da 18.000 righe, per la soluzione che ho trovato è leggere il file .sql riga per riga ed eseguire la relativa query di inserimento, ma questo vuol dire eseguire oltre 400.000 query, aggiungendo la lettura del file, il tempo di esecuzione supera abbondantemente i 10 minuti...............

Ho provato con una strada alternativa, decisamente più veloce. Se prima per aggiornare una singola tabella ci metteva 30-40 secondi, con questo metodo ci mette al massimo 5 secondi.

PHP:
system('mysql --host='.$this->host.' --user='.$this->username.' --password='.$this->password.' --default-character-set=utf8 '.$this->dbName.' < '.$tmpSql);

Essendo su hosting condiviso però, la funzione system è disabilitata (così come la exec), e quindi devo cercare una soluzione alternativa....

La mia domanda è: c'è qualche possibilità che con una sola query prende tutto il file e popola la tabella, senza usare le funzioni system o exec?
 

Discussioni simili