Optimizar automáticamente todas las tablas de un servidor MySQL
| Posted in General | Posted on 08-02-2010
2
En los servidores de VeneHosting.com ejecutamos semanalmente un proceso que optimiza ‘a juro’ todas las tablas, de todas las bases de datos MySQL de todo el servidor (que vienen siendo un montón enorme!); con el fin de ayudar a mantener un buen nivel de rendimiento.
Como no somos egoístas, compartimos este simple script con el resto de la comunidad y ¿porqué no?, hasta la competencia podría aprender algo más de nosotros !
<?php
/* modifica estos valores según tu servidor.*/
$host="localhost";
$usuario="admin"; //Tu super usuario
$pasword="xxxxx"; //La clave del super-usuario
/*no modifiques nada más*/
$link=mysql_connect($host,$usuario,$pasword);
$dbs=mysql_list_dbs($link);
while ($db=mysql_fetch_object($dbs))
{
echo "$db->Database\n";
$tablas = mysql_db_query($db->Database, "SHOW TABLES", $link);
while ($tabla=mysql_fetch_array($tablas)) {
mysql_db_query($db->Database, "OPTIMIZE TABLE ".$tabla[0], $link);
echo "$tabla[0]\n";
}
}
?>
Sólo resta programar este script con CRON para que se ejecute cada X tiempo (recomendado 1 vez a la semana) y listo !


Hola Alexander.
No es lo mas optimo hacerlo desde php ya que es mucho mas rapido y claro desde un script bash.
Para eso tenes este link, que es para backup pero podes aplicarlo de igual forma para un optimize
http://www.tail-f.com.ar/2009/10/10/noticias/backup-de-todas-las-bases-de-datos-mysql-en-archivos-separados.html
Si insistis con PHP, yo hice un ejemplo con Zend Framework hace unas semanas
http://blog.pablo-morales.com/2009/12/cron-para-backup-optimizacion-tablas-php-zend-framework/
Saludos.
Hola.
Como es un proceso básico, pues PHP siempre será mi opción (como suelo decir, si puedo hacerlo con PHP, entonces lo haré).
Ahora bien, los enlaces que me colocas están interesantes, gracias por compartir.
Respecto a tu primer enlace, nosotros usamos un script parecido, sólo que nos genera los respaldos ordenados por (diarios, semanales y mensuales), cuanto saque tiempo lo publicaré.
El segundo enlace me gusta por mostrar la implementación del proceso, pero usando los componentes de ZF, lo cual es buen ejemplo para muchos aunque en lo personal no usaría un framework para dicha tarea.
De nuevo gracias por pasarte por acá, bienvenido.