Herramientas de usuario

Herramientas del sitio


notas:bases_de_datos:mysql

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
notas:bases_de_datos:mysql [2015/04/22 14:41] – [Administración] cayunotas:bases_de_datos:mysql [2021/01/21 17:47] (actual) – [Migrar una base a InnoDB] cayu
Línea 2: Línea 2:
 ===== Administración ===== ===== Administración =====
 ==== Scripts ==== ==== Scripts ====
-Script para listas las tablas fragmentadas y correr un optimize+Script para listar las tablas fragmentadas y correr un optimize
 <code bash optimise.sh> <code bash optimise.sh>
 #!/bin/sh #!/bin/sh
Línea 68: Línea 68:
 </code> </code>
  
 +==== Tamaños de bases y tablas ====
 +<code sql>
 +SELECT table_schema "DB Name",
 +        ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
 +FROM information_schema.tables 
 +GROUP BY table_schema; 
 +</code>
 +<code sql>
 +SELECT table_name AS "Table",
 +ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
 +FROM information_schema.TABLES
 +WHERE table_schema = "database_name"
 +ORDER BY (data_length + index_length) DESC;
 +</code>
 +
 +==== Migrar una base a InnoDB ====
 +<code>
 +# mysql base < mig_innodb.sql
 +</code>
 +<code sql>
 +DROP PROCEDURE IF EXISTS convertToInnodb;
 +DELIMITER //
 +CREATE PROCEDURE convertToInnodb()
 +BEGIN
 +mainloop: LOOP
 +  SELECT TABLE_NAME INTO @convertTable FROM information_schema.TABLES
 +  WHERE `TABLE_SCHEMA` LIKE DATABASE()
 +  AND `ENGINE` LIKE 'MyISAM' ORDER BY TABLE_NAME LIMIT 1;
 +  IF @convertTable IS NULL THEN 
 +    LEAVE mainloop;
 +  END IF;
 +  SET @sqltext := CONCAT('ALTER TABLE `', DATABASE(), '`.`', @convertTable, '` ENGINE = INNODB');
 +  PREPARE convertTables FROM @sqltext;
 +  EXECUTE convertTables;
 +  DEALLOCATE PREPARE convertTables;
 +  SET @convertTable = NULL;
 +END LOOP mainloop;
 +
 +END//
 +DELIMITER ;
 +
 +CALL convertToInnodb();
 +DROP PROCEDURE IF EXISTS convertToInnodb;
 +</code>
 +==== Comprimir una tabla ====
 +<code sql>
 +ALTER TABLE syslog key_block_size=8 row_format=compressed;
 +</code>
notas/bases_de_datos/mysql.1429713696.txt.gz · Última modificación: 2015/04/22 14:41 por cayu