Passer un script d'optimisation de MySQL à MySQLi
Salutations,
Depuis des années, j'utilise un script qui nous avait été donné par un ancien webmaster, pour nettoyer nos BDDs MySQL :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| // Fonction de calcul d'execution
function calcul_execution() {
list($msec, $sec) = explode(' ', microtime());
return ((float) $sec + (float) $msec) * 1000000;
}
// <!-- Optimisation N° 1 !-->
echo '⇰ Optimisation des tables SQL du Forum (base '.$base1.')... ';
// Début de calcul d'execution 1
$debut_calcul1 = calcul_execution(1);
// Connexion SQL
mysql_connect("$chemin_db1", "$login1", "$pass1");
$table1 = mysql_list_tables($base1);
//on prépare la requête
$sql1 = "OPTIMIZE TABLE ";
//on recherche toutes les données des tables
$req1 = mysql_query('SHOW TABLE STATUS');
while($data = mysql_fetch_assoc($req1))
{
// on regarde seulement les tables qui affichent des pertes
if($data['Data_free'] > 0)
{
// et on l'inclut si elle comporte des pertes
$sql1 .= '`'.$data['Name'].'`, ';
}
}
// on enlève le ', ' de trop
$sql1 = substr($sql1, 0, (strlen($sql1)-2));
// et on optimise
mysql_query($sql1);
// Fermeture de la connexion
mysql_close();
echo '<font color="#009999"><strong>Ok</strong></font> !';
// Fin de calcul d'execution 1
$fin_calcul1 = calcul_execution(1);
// Décompte du temps d'execution 1
echo ' - (<em> ';
$calcul1 = $fin_calcul1-$debut_calcul1;
$calcul1s = ($fin_calcul1-$debut_calcul1)/1000000;
if( $calcul1 <= 35000) echo '<font color="green">';
else if( $calcul1 <= 50000) echo '<font color="yellow">';
else if( $calcul1 <= 100000) echo '<font color="orange">';
else echo '<font color="red">';
echo '<strong>' .$calcul1. '</strong></font> micro-secondes <font size="-1">(soit <strong>' .$calcul1s. '</strong> secondes)</font>.</em> )<br /><br />'; |
- Première question : Ce script est-il toujours utile d'après vous ?
- Deuxième question : Comment le moderniser pour déjà le passer en MySQLi ?
Merci de vos aides...