Salve,
ho creato uno script che si occupa di cancellare il contenuto di una tabella con poco più di 26000 righe.
Fatto ciò la ripopola prelevando i dati da un csv.
Per effettuare le query utilizzo PDO.
di seguito il codice che utilizzo per effettuare la cancellazione:
codice:
$pdo->query("DELETE FROM nome-tabella);
c'è un problema però .... 7 volte su 10 il server mi produce un errorlog all'esecuzione di questa riga:
codice:
PHP Warning: Error while sending QUERY packet. PID=90668 in /script.php on line 53
Il mio mantainer mi ha suggerito di cancellare il contenuto della tabella in più step, così ho trasformato il codice nel seguente modo:
codice:
delete:
$pdo->query("DELETE FROM nome-tabella WHERE 1 = 1 LIMIT 200"); //riga 53
$q = "select id from nome-tabella";
$result = $pdo->query($q);
$codice2 = $result->fetchColumn();
if (!empty($codice2))
{
sleep(1);
goto delete;
}
Purtroppo non ho ottenuto risultati positivi.
Ho provato anche a distruggere e ricreare la tabella, ma niente di fatto.
Il mantainer mi ha detto che il valore impostato del "max_allowed_packet" è a 64MB e non può essere aumentato poiché si tratta di uno spazio condiviso.
Possibile che la semplice operazione di svuotamento di una tabella mi crea questi problemi?
Conoscete un metodo alternativo per risolvere la questione?
Ringrazio in anticipo per ogni possibile suggerimento!