Optimizar todas las tablas de una base de datos MySQL con PHP

1 - , , - 02/01/2009 00:00:00

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.

Comentarios

Hernán15/05/2012 19:11:31

1
Muchas gracias, me sirvió mucho. Saludos.

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha