In seguito a ripetute cancellazioni e inserimenti di dati, le operazioni sulle tabelle di un database MYSQL possono subire rallentamenti. Per risolvere questi problemi esistono comandi di manutenzione per le tabelle Mysql che dovrebbero essere effettuati occasionalmente.

I comandi in questione sono REPAIR TABLE e OPTIMIZE TABLE.

REPAIR TABLE= Viene utilizzato per riparare tabelle corrotte e può essere utilizzato per tabelle di tipo MyISAM e ARCHIVE. E’ necessario possedere privilegi di inserimento ed estrazione dei record.

OPTIMIZE TABLE= Viene utilizzato per recuperare spazio e deframmentare i files che contengono i dati. E’ consigliabile utilizzarlo dopo l’eliminazione o modifiche di una consistente quantità di dati.

Per eseguire questi script solitamente è necessario accedere a PHPMYADMIN, selezionare tutte le tabelle del database ed eseguire il comando.

Grazie a questo script in PHP possiamo far eseguire in automatico queste operazioni semplicemente richiamandolo dalla barra degli indirizzi.

Create un nuovo script in PHP, chiamatelo ottimizzadb.php e inserite il seguente contenuto con i vostri dati del database.

<?php
//configura dati di accesso al db
$db["user"]='TUO USERNAME';
$db["name"]='DATABASE';
$db["pass"]='PASSWORD';
$db["host"]='HOST';
//connessione al db
$conn=mysql_connect($db["host"],$db["user"],$db["pass"]) or die("Connessione non riuscita: " . mysql_error());
mysql_select_db($db["name"], $conn);
// query che carica tutte le tabelle in un array
$tabelle = @mysql_query("SHOW TABLES") or die (mysql_error());
//ciclo l'array per estrarre tutte le tabelle
while ($tab = mysql_fetch_assoc($tabelle))
{
    // estrazione del nome della singola tabella
    foreach ($tab as $d => $tablename)
    {
        // query di riparazione
        @mysql_query("REPAIR TABLE $tablename") or die (mysql_error());
        // query di ottimizzazione
        @mysql_query("OPTIMIZE TABLE $tablename") or die (mysql_error());
     }
}
?>

Effettuate l’upload dello script nel vostro spazio web e richiamate il file dalla barra degli indirizzi (es. http://www.nomesito.php/ottimizzadb.php).

In questo modo avete riparato e ottimizzato tutte le tabelle del vostro database.

Se ritenete opportuno, dal vostro pannello di amministrazione dell hosting potrete creare un Cron job che effettui in automatico l’operazione a intervalli regolari.