Optimizar todas las tablas de una base de datos mysql con php
OPTIMIZE TABLE debe usarse si se ha eliminado gran parte de una tabla o si se han hecho muchos cambios en una tabla con filas de tamaño variable (tablas que contengan columnas VARCHAR, BLOB o TEXT). Optimizar las tablas con este comando no es algo que se deba hacer continuamente, pero sí que es bueno hacerlo de vez en cuando. Con este script podremos optimizar todas las tables de una base de datos. Para automatizar completamente el proceso bastaría con crear una tarea con Cron.
<?php
// VARIABLES DE CONEXION
$server = ¨localhost¨;
$dbuser = ¨usuario¨;
$dbpassword = ¨password¨;
$dbname = ¨nombre_base_de_datos¨;
$db = mysql_connect ($dbhost, $dbuser, $dbpassword) or die (¨Connection Error: ¨ . mysql_error ());
mysql_select_db ($dbname) or die (¨Error al conectar a la base de datos.¨);
// EXRAEMOS LAS TABLAS DE LA BASE DE DATOS
$sql = ¨SHOW TABLES¨;
$tablas = mysql_query ( $sql) or die (¨No se puede ejecutar la consulta: ¨.mysql_error ());
while ($tabla = mysql_fetch_assoc ($tablas)) {
foreach ($tabla as $item => $nombre_tabla) {
echo $nombre_tabla.¨: ¨;
// OPTIMIZAMOS LAS TABLAS
mysql_query (¨OPTIMIZE TABLE ¨.$nombre_tabla) or die (¨No se puede ejecutar la consulta: ¨.mysql_error ());
// MOSTRAMOS EL RESULTADO
if (mysql_errno ()){
echo ¨ No ha podido ser optimizada.¨;
}else{
echo ¨Optimizada.¨;
}
echo ¨<br />¨;
}
}
mysql_close ($db);
?>
Lo que nos mostraría, si todo ha ido bien, algo como lo siguiente:
tabla 1: Optimizada.
tabla 2: Optimizada.
tabla 3: Optimizada.
tabla 4: Optimizada.
...............
tabla n: Optimizada.