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

votar

¿ Generar SQL desde MySQL ? Pozi.

MySQL:
  1. SELECT CONCAT('OPTIMIZE TABLE ', table_name, ';')
  2. FROM information_schema.tables
  3. WHERE table_schema = aqui_tu_base_de_datos
  4. AND table_rows>= 1000;

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

MySQL:
  1. OPTIMIZE TABLE actions_log;
  2. OPTIMIZE TABLE forum_messages;
  3. OPTIMIZE TABLE forum_users;
  4. OPTIMIZE TABLE forum_privmsg;

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:
  1. SELECT CONCAT('OPTIMIZE TABLE ', table_schema, ".", table_name, ';')
  2. FROM information_schema.tables
  3. WHERE table_rows>= 1000;

That's all, folks.

Deja tu opinión

Sólo se permiten las etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post anteriores/siguientes:

Post (quizás) relacionados:

  • Esquema de Tablas MySQL de mediawiki

  • Me la guardo como referencia: ...
  • Localizar las tablas MySQL más grandes de nuestro servidor

  • Sólo apto para MySQL 5: [mysql] SELECT concat(table_schema,'.',table_name), concat(round(table_rows/1000000,2),'M') rows, concat(round(data_length/(1024*1024*1024),2),'G') DATA, concat(round(index_length/(1024*1024*1024),2),'G') idx, concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size, round(index_length/data_length,2) idxfrac FROM information_schema.TABLES ORDER BY data_length+index_length DESC LIMIT 10; [/mysql] Lo que hace, vulgarmente, viene siendo recopilar...
  • Galería de diseños para tablas

  • Digan lo que digan por ahí sobre las tablas, esos demonios del averno, lo cierto es que a la hora de mostrar datos tabulados, todavía...
  • Gráficas de MySQL en modo texto

  • Partiendo de esto... [mysql] CREATE TABLE visitas ( Mes VARCHAR(3) NOT NULL, Visitas FLOAT NOT NULL, Pageviews FLOAT NOT NULL ); INSERT INTO visitas VALUES ('Ene', 100, 100), ('Feb', 92, 145), ('Mar', 96, 201), ('Abr',...
  • Miscelánea de enlaces sobre Bases de datos

  • Optimizaciones de subqueries en MySQL 6, en MySQL 6.0 Subquery optimizations are published Ojo con el tipo de índices que defines en las tablas Memory, en...