Ragazzi importo dei dati attraverso un file xml nel database, ma ormai la tabella è diventata così grande che è pesate, addirittura non posso fare dump della tabella che phpadmin mi da errore di tempo, come posso ottimizzarla? affinché si velocizzi? vi copio anche il file che interagisce con il db se è possibile modificarlo x ottimizzarlo
Codice PHP:
<?php
echo "\n
1: ".date("l dS \of F Y h:i:s A").": INIZIO ELABORAZIONE";
include("c.php");
$import = $_GET['import'];
$file_zip = "/path/$import.zip";
if(file_exists($file_zip))
{
shell_exec("unzip $file_zip -d /path/xml");
$file_xml = $import . ".xml";
$xml = simplexml_load_file($file_xml);
echo "lettura tabella per updater";
foreach($xml->updater as $updater)
{
$id_amm = $updater->id_amm;
$id_erase = $updater->id_erase;
}
$erase = $id_erase;
//echo $erase;
//echo $id_amm;
$id_amm = $id_amm;
if($erase == $id_amm) #si cancellano tutti i dati di questo amministratore e si reimportano dal file xml
{
echo " - IMPORTAZIONE TOTALE DEI DATI DAL FILE ".$file_zip;
$check_sql = "DELETE FROM amministratore WHERE id_amm = '$id_amm'";
//echo "\n
query: ".$check_sql;
$check_query = @mysql_query($check_sql) or die(mysql_error());
$al_sql = "DELETE FROM anagrafico WHERE id_amm = '$id_amm'";
//echo "\n
query: ".$al_sql;
$al_query = @mysql_query($al_sql) or die(mysql_error());
}
else
{
echo " - IMPORTAZIONE PARZIALE DEI DATI DAL FILE ".$file_zip;
}
echo "\n
3: ".date("l dS \of F Y h:i:s A").": Elaborazione della tabella amministratore";
foreach($xml->amministratore as $amministratore)
{
$id = $amm->id;
$id_amm = $amm->id_amm;
$denominazione = $amministratore->denominazione;
$indirizzo = $amministratore->indirizzo;
$cap = $amministratore->cap;
$iva = $amministratore->iva;
$citta = $amministratore->citta;
$telefono_1 = $amministratore->telefono_1;
$telefono_2 = $amministratore->telefono_2;
$fax = $amministratore->fax;
$email = $amministratore->email;
$web = $amministratore->web;
$username = $amministratore->username;
$password = md5($amministratore->password);
$banned = $amministratore->banned;
if($erase <> $amministratore)
{
$delete_sql = "DELETE FROM amministratore WHERE id_amministratore = '$id_amministratore'";
//echo "\n
query: ".$delete_sql;
$result = mysql_query($delete_sql);
if(!$result) die("Errore MySQL: ".mysql_error()."\n
Query:\n
".$delete_sql);
}
$insert_sql = "INSERT INTO amm ( id_amministratore, denominazione, indirizzo, cap, iva, citta, telefono_1, telefono_2, fax, email, web, username, password, banned) VALUES ('$id_amministratore', '$denominazione', '$indirizzo', '$cap', '$iva','$citta', '$telefono_1', '$telefono_2', '$fax', '$email', '$web', '$username', '$password','$banned')";
echo "\n
query: ".$insert_sql;
$result = mysql_query($insert_sql);
if(!$result) die("Errore MySQL: ".mysql_error()."\n
Query:\n
".$insert_sql);
}
echo "\n
4: ".date("l dS \of F Y h:i:s A").": Elaborazione della tabella anagrafico";
foreach($xml->anagrafico_del_condominio as $anagrafico_del_condominio)
{
$id = $anagrafico->id;
$id_amm = $anagrafico->id_amm;
$id_condominio = $anagrafico->id_condominio;
$codicefiscale_archivio = $anagrafico->codicefiscale_archivio;
$condominio_denominazione = $anagrafico->condominio_denominazione;
if($erase <> $amministratore)
{
$delete_sql = "DELETE FROM anagrafico_del_condominio WHERE id_condominio = '$id_condominio' AND id_amministratore = '$id_amministratore'";
//echo "\n
query: ".$delete_sql;
$result = mysql_query($delete_sql);
if(!$result) die("Errore MySQL: ".mysql_error()."\n
Query:\n
".$delete_sql);
}
$insert_sql = "INSERT INTO anagrafico(id_condominio, id_amm, codicefiscale_archivio, condominio_denominazione)VALUES ( '$id_condominio','$id_amministratore', '$codicefiscale_archivio','$condominio_denominazione')";
# echo "\n
query: ".$insert_sql;
$result = mysql_query($insert_sql);
if(!$result) die("Errore MySQL: ".mysql_error()."\n
Query:\n
".$insert_sql);
}
echo "\n
14: ".date("l dS \of F Y h:i:s A").": FINE ELABORAZIONE";
shell_exec("rm /path/$import.zip");
shell_exec("rm $file_xml");
}
else
{
die("Il file [i]$file_zip[/i] non esiste!");
}
?>