MySQL permet d'optimiser les tables d'une base de manière très simple, il suffit de lancer la requête suivante:
OPTIMIZE TABLE 'table1', 'table2', ..., 'tableN'
En tant que bon webmaster, vous désirez faire un script qui optimise automatiquement vos tables mais deux problèmes se posent:
- Vous ne voulez pas "coder en dur" toutes vos tables,
- Vous ne voulez optimiser que les tables qui en ont besoin.
Heureusement pour nous, MySQL peut vous informer sur la structure d'une base avec la requête suivante:
SHOW TABLE STATUS
Le retour de cette requête comporte deux champs qui nous intéressent au plus au point:
Name qui est le nom de la table
Data_free qui est l'espace pouvant être libéré.
Script :
<?
// Vous êtes déjà connecté à votre base de données ...
// On initialise la requête d'optimisation
$sql_opt = "OPTIMIZE TABLE ";
// On recherche toutes les données des tables
$sql_status = "SHOW TABLE STATUS"
$req_status = mysql_query($sql_status);
while($t_status = mysql_fetch_array($req)) {
if($t_status["Data_free"] > 0) {
// Data_free est supérieur à 0, on peut optimiser la table
$sql_opt .= "`".$t_status["Name"]."`, ";
}
}
// Le "substr" est utilisé pour supprimer le ", " final de la requête
$sql_opt = substr($sql_opt, 0, -2);
mysql_query($sql);
?>
** Les noms des tables sont protégés avec des "`" et non pas des "'".
{mos_fb_discuss:no_discuss}
Ajouter aux favoris
Bookmarker
Envoyer par mail
Vu: 545






