- Home
- Categorie
- Coding e Sistemistica
- PHP
- Velocizzare "aggiornamento" tabella da file remoto
-
Velocizzare "aggiornamento" tabella da file remoto
Salve a tutti,
ho un problema con uno script, dovrei fare in modo di accelerarne l'esecuzione perchè così com'è è troppo lento, e non so se si possa velocizzare.....In pratica apro un file remoto del tipo:
INSERT INTO table VALUES (.......)
Questo file mi serve per aggiornare una tabella del mio database, e l'aggiornamento è fatto ogni 24 ore.
Ci sono altre 4 tabelle identiche (relative ai giorni precedenti) che ad ogni aggiornamento shiftano di una posizione (la 1 diventa la 2, la 2 diventa la 3, la 3 diventa la 4, la 4 viene eliminata dal database, e quella aggiornata diventa la 1).Ecco, dovrei trovare un modo abbastanza veloce per fare queste operazioni (lo shift ci mette pochissimo, il problema è il caricamento della nuova tabella).
Attualmente il mio codice è questo:
$source="XXX/XX.sql"; //aggiorna database //cancella record da tabella principale $data->query("TRUNCATE TABLE x_world"); //inserisci dati in tabella principale $news=fopen($source,"r"); while (!feof($news) { $query = fgets($news, 4096); $data->query($query); } fclose ($news);
per lo shift invece (anche se grossolano come metodo)
//shifta tabelle //cancella tabella 4 e copia la 3 mysql_query("DROP TABLE ".$table4."") or die(mysql_error()); mysql_query("CREATE TABLE ".$table4." like ".$table3."") or die(mysql_error()); mysql_query("INSERT INTO ".$table4." SELECT * FROM ".$table3."") or die(mysql_error()); //cancella tabella 3 e copia la 2 mysql_query("DROP TABLE ".$table3."") or die(mysql_error()); mysql_query("CREATE TABLE ".$table3." like ".$table2."") or die(mysql_error()); mysql_query("INSERT INTO ".$table3." SELECT * FROM ".$table2."") or die(mysql_error()); //cancella tabella 2 e copia la 1 mysql_query("DROP TABLE ".$table2."") or die(mysql_error()); mysql_query("CREATE TABLE ".$table2." like ".$table1."") or die(mysql_error()); mysql_query("INSERT INTO ".$table2." SELECT * FROM ".$table1."") or die(mysql_error()); //cancella tabella 1 e copia la principale mysql_query("DROP TABLE ".$table1."") or die(mysql_error()); mysql_query("CREATE TABLE ".$table1." like `x_world`") or die(mysql_error()); mysql_query("INSERT INTO ".$table1." SELECT * FROM `x_world`") or die(mysql_error());
Qualche idea su come velocizzare l'esecuzione di questo script?
Ah, dimenticavo, il file remoto ha in media 15.000 righe...
E' bene accetto qualsiasi consiglio, grazie