[PHP,MySQL] Automatisierte Optimierung der Datenbanktabellen

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...

Mit diesem Script ist es möglich, per Cronjob oder durch manuellen Aufruf alle Tabellen aller Datenbanken zu optimieren. Dadurch entstehen kaum noch Datenbankfehler aufgrund von Datenüberhängen. Das komplette Script finden Sie auch in unseren Downloads.

  1. <?php  
  2. $mysqlhost        = "localhost"; // MySQL-Host angeben  
  3. $mysqluser        = "root"; // MySQL-User angeben  
  4. $mysqlpwd         = ""; // Passwort angeben  
  5.  
  6. ############################################################################  
  7. $connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd);  
  8. if (mysql_error()) {  
  9.   echo "Konnte Datenbankserver nicht anwählen, bitte versuchen Sie es später nocheinmal. <!-- ".mysql_error()."//-->"; 
  10. }  
  11.  
  12. $db_list = mysql_list_dbs();  
  13. $i = 0;  
  14. $cnt = mysql_num_rows($db_list);  
  15.  
  16. echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"500\" align=\"center\">\n";
  17.  
  18. while ($i < $cnt) {  
  19.  
  20.     $db =  mysql_db_name($db_list, $i);  
  21.   ####################################################################  
  22.  
  23.   mysql_select_db($db, $connection);  
  24.   $result = mysql_list_tables($db);  
  25.  
  26.     echo "<tr> 
  27.         <td colspan=\"2\" style=\"font-weight:bold\"><br />Datenbank: <span style=\"color:blue\">".$db."</span></td>
  28.          </tr>\n";  
  29.     echo "<tr>\n 
  30.         <td>Tabelle</td> 
  31.         <td>Ergebnis</td>\n 
  32.         </tr>\n";  
  33.  
  34.     while ($row = mysql_fetch_row($result)) {  
  35.       $sql = "OPTIMIZE TABLE `".$row[0]."`"; 
  36.       $erg = mysql_query($sql, $connection) or die(mysql_error()); 
  37.       $daten= mysql_fetch_array($erg, MYSQL_ASSOC);  
  38.  
  39.       if($daten){ 
  40.         switch ($daten['Msg_text']) { 
  41.           case "Table is already up to date": 
  42.           $color = "#CAF9AE"; 
  43.           break; 
  44.  
  45.           case "OK": 
  46.           $color = "#63EB66"; 
  47.           break; 
  48.  
  49.           case "The handler for the table doesn't support check/repair":
  50.            $color = "#63EB66"; 
  51.           break; 
  52.  
  53.           default: 
  54.           $color = "#F21C1C"; 
  55.           break; 
  56.         } 
  57.  
  58.       echo "<tr style=\"background-color:".$color."\"> 
  59.           <td width=\"300\" nowrap>".$row[0]."</td> 
  60.           <td width=\"200\" nowrap>".$daten['Msg_text']."</td>
  61.            </tr>\n"; 
  62.       } 
  63.     }  
  64.   #################################################################### 
  65.   $i++;  
  66. }  
  67. echo "</table>\n";      
  68. ?>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Sicherheitsfrage *