¿ 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.