MarcosBL

Aprendiz de todo, maestro de nada

MySQL – Generar SQL para optimizar las tablas más rellenitas

¿ Generar SQL desde MySQL ? Pozi.

[mysql]
SELECT CONCAT(‘OPTIMIZE TABLE ‘, table_name, ‘;’)
FROM information_schema.tables
WHERE table_schema = aqui_tu_base_de_datos
AND table_rows >= 1000;
[/mysql]

Esto generará una salida de forma automática tal que…

[mysql]
OPTIMIZE TABLE actions_log;
OPTIMIZE TABLE forum_messages;
OPTIMIZE TABLE forum_users;
OPTIMIZE TABLE forum_privmsg;
[/mysql]

Ahora basta con pasarla a MySQL en linea de comandos, con un cron, desde PHP, etc… y asegurarnos que todas las tablas que pasen de X registros en nuestra BD se optimizan solitas de forma completamente automática.

Si queremos obtener el mismo resultado pero de todas las bases de datos de nuestro servidor, y no sólo de una determinada:

[mysql]
SELECT CONCAT(‘OPTIMIZE TABLE ‘, table_schema, «.», table_name, ‘;’)
FROM information_schema.tables
WHERE table_rows >= 1000;
[/mysql]

That’s all, folks.