SHOW DATABASES
USE {$database}
SHOW TABLE STATUS
OPTIMIZE TABLE {$table}
<?php
$mysql_connexion = mysql_connect('localhost', '***', '***', true);
//ETAPE 1 : on liste les bases de données
$db = array();
$mysql_query = mysql_query("SHOW DATABASES;");
while( $ligne = mysql_fetch_assoc($mysql_query) )
{
array_push($db, $ligne['Database']);
}
//ETAPE 2 : pour chaque base, on liste les tables pour ne conserver que celles qu'on optimisera
foreach( $db as $database )
{
mysql_query("USE `{$database}`");
//
$tables = array();
$mysql_query = mysql_query("SHOW TABLE STATUS;");
while( $ligne = mysql_fetch_assoc($mysql_query) )
{
//seulement s'il y a des pertes de données
if( $ligne['Data_free'] > 0 )
{
array_push($tables, '`'.$ligne['Name'].'`');
}
}
//Optimisation
$tables = implode(',', $tables);
mysql_query("OPTIMIZE TABLES {$tables};");
}
//ETAPE 3 : on clôture la connexion
mysql_close($mysql_connexion);
unset($mysql_connexion, $mysql_query, $tables, $database, $db, $ligne);
?>
array_push($tables, '`'.$ligne['Name'].'`');
"USE `{$database}`"
"USE `".$database."`"