¿MYSQL OPTIMIZA todas las tablas?

MySQL tiene un comando OPTIMIZE TABLE que se puede utilizar para recuperar el espacio no utilizado en una instalación de MySQL. ¿Existe una forma (comando incorporado o procedimiento almacenado común) de ejecutar esta optimización para cada tabla en la base de datos y/o instalación del servidor, o es algo que tendría que programar usted mismo?

Solución

Puedes usar mysqlcheck para hacer esto en la línea de comandos.

Una base de datos:

mysqlcheck -o 

Todas las bases de datos:

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

El siguiente ejemplo de script php puede ayudarle a optimizar todas las tablas de su base de datos

<?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());

   }
}

?>
Comentarios (4)

El Administrador MySQL (parte de las herramientas GUI de MySQL) puede hacerlo por usted a nivel de base de datos.

Sólo tienes que seleccionar tu esquema y pulsar el botón Mantenimiento en la esquina inferior derecha.

Desde que las Herramientas GUI han llegado al final de su vida útil son difíciles de encontrar en la página de mysql. Las encontré a través de Google: http://dev.mysql.com/downloads/gui-tools/5.0.html

No sé si el nuevo MySQL Workbench puede hacer eso también.

Y puedes usar la herramienta de línea de comandos mysqlcheck que debería poder hacerlo también.

Comentarios (0)