E' risaputo che molto spesso il degrado delle prestazioni di un sito realizzato con joomla può essere condizionato dalla necessità di ottimizzare le tabelle del database Mysql.
In effetti, ottimizzando il database tramite Phpmyadmin, la differenza si vede eccome. Però per effettuare questa operazione è necessario connettersi con Phpmyadmin, autenticarsi, selezionare tutte le tabelle, dare il comando di ottimizzazione, disconnettersi, ecc..
Troppi click!
Allora ho cercato su internet qualcosa che non fosse un'estensione, per non appesantire eccessivamente il sito, e che permettesse di ottimizzare velocemente il database. Alla fine ho trovato un semplice script in php, che una volta uploadato sul server e protetto eventualmente con una password, permette di effettuare l'ottimizzazione semplicemente richiamando
http://www.miosito.it/script.php.
Lo script è questo, spero che possa tornare utile anche ad altri.
<?php
if (!ini_get('safe_mode')) {
set_time_limit(2400);
}
$host="localhost";
$user ="nome_utente";
$pass = "password";
$DB_name="nome_database";
$msg="";
$link = mysql_connect($host,$user,$pass);
if ( ! $link ) die("Errore ...impossibile connettersi a MYSQL");
if(!@mysql_select_db($DB_name,$link)) die("Errore ...impossibile connettersi al DataBase".mysql_error());
echo <<<EOT
<html><head><title>Ottimizzazione Tabelle</title>
<STYLE TYPE="text/css">
BODY{BACKGROUND-COLOR: #dfdfd1;FONT:BOLDER 14px VERDANA,ARIAL,MS Sans Serif;color:red;}
</STYLE>
</head>
<body >
<center>
<h3>Ottimizzazione Tabelle<br> $DB_user</h3>
<p>
EOT;
$query="SHOW TABLE STATUS FROM $DB_name ";
$result= mysql_query ($query) or die ("errore : ". mysql_error() );
if(mysql_num_rows($result)){
while($row=mysql_fetch_array($result)){
$query='OPTIMIZE TABLE '.$row[0];
$result1=mysql_query($query) or die("errore : ". mysql_error()."\n");
$row1=mysql_fetch_row($result1);
if($row1[2]!='status') echo "Tabella: $row[0] <br> - $row1[2]: $row1[3]<br>";
else echo "Tabella: $row[0] O.K.<br>";
}
}
echo <<<EOT
<script>
alert("Ottimizzazione O.K.")
self.close()
</script>
EOT;
exit;
?>
Un saluto a tutti