Hallo an Alle,
für das Optimieren und Reorganieren von MySql-Datenbanken (InnoDB) habe ich im Netz folgenden Code gefunden. Könnt Ihr da mal drüber schauen, ob das wirklich das Richtige macht? Bin in PHP noch blutiger Anfänger und verstehe den Code nicht komplett. Danke schonmal für Eure Mühe!
<?php define('DB_USER', 'root'); // Ersetze usernamehere mit deinem MySQL-Datenbank-Benutzernamen.define('DB\_PASSWORD', ''); // Ersetze yourpasswordhere mit deinem MySQL-Passwort. define('DB\_HOST', 'localhost'); // In 99% der Fälle musst du hier nichts ändern. Falls doch ersetze localhost mit der MySQL-Serveradresse. define('CheckForCorrupts',true); define('Optimize',true); // ab Hier nichts mehr ändern. $db = mysql\_connect(DB\_HOST,DB\_USER,DB\_PASSWORD) or die("Please check the Settings of the Database (User/Password/Host)"); $abfrage = mysql\_query("SHOW databases",$db); while ($databases = mysql\_fetch\_array($abfrage)) { $tot\_data = 0; $tot\_idx = 0; $tot\_all = 0; $result = mysql\_query("SHOW TABLE STATUS FROM `".$databases[0]."`",$db); if (mysql\_num\_rows($result) \>= '1'){ while ($row = mysql\_fetch\_array($result)) { $tot\_data = $row['Data\_length']; $tot\_idx = $row['Index\_length']; $total = $tot\_data + $tot\_idx; $total = $total / 1024 ; $total = round ($total,3); $total\_total += $total; $gain= $row['Data\_free']; $gain = $gain / 1024 ; $total\_gain += $gain; $gain = round ($gain,3); if (CheckForCorrupts == true) { mysql\_query("CHECK TABLE `".$row[0]."`",$db); mysql\_query("FLUSH TABLE `".$row[0]."`",$db); } if (Optimize == true) { mysql\_query("OPTIMIZE TABLE `".$row[0]."`",$db); } } } } echo "Size of all Databases: ".floor($total\_total/1024)." MB (Optimize "; if (Optimize == true) { echo "has saved "; } else { echo "could save "; } echo floor($total\_gain/1024)." MB)"; ?\> Gruß cozuhazu