MySQL OPTIMIERT alle Tabellen?

MySQL verfügt über einen OPTIMIZE TABLE Befehl, mit dem ungenutzter Speicherplatz in einer MySQL-Installation zurückgewonnen werden kann. Gibt es eine Möglichkeit (eingebauter Befehl oder allgemeine gespeicherte Prozedur), diese Optimierung für jede Tabelle in der Datenbank und/oder Serverinstallation durchzuführen, oder müssen Sie das selbst in einem Skript schreiben?

Lösung

Sie können mysqlcheck verwenden, um dies auf der Kommandozeile zu tun.

Eine Datenbank:

mysqlcheck -o 

Alle Datenbanken:

mysqlcheck -o --all-databases
Kommentare (10)

Das folgende Beispiel-PHP-Skript kann Ihnen helfen, alle Tabellen in Ihrer Datenbank zu optimieren

<?php

dbConnect();

$alltables = mysql_query("SHOW TABLES");

while ($table = mysql_fetch_assoc($alltables))
{
   foreach ($table as $db => $tablename)
   {
       mysql_query("OPTIMIZE TABLE '".$tablename."'")
       or die(mysql_error());

   }
}

?>
Kommentare (4)

Der MySQL Administrator (Teil der MySQL GUI Tools) kann dies für Sie auf Datenbankebene tun.

Wählen Sie einfach Ihr Schema aus und klicken Sie auf die Schaltfläche Maintenance in der unteren rechten Ecke.

Da die GUI Tools den End-of-life-Status erreicht haben, sind sie auf der mysql-Seite schwer zu finden. Ich habe sie über Google gefunden: http://dev.mysql.com/downloads/gui-tools/5.0.html

Ich weiß nicht, ob die neue MySQL Workbench das auch kann.

Sie können auch das mysqlcheck Kommandozeilen-Tool verwenden, das das auch können sollte.

Kommentare (0)