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:39] – [MySQL y Wordpress] cayunotas:bases_de_datos:mysql [2021/01/21 17:47] (actual) – [Migrar una base a InnoDB] cayu
Línea 1: Línea 1:
 ====== Task MySQL ====== ====== Task MySQL ======
-===== MySQL y datos CSV =====+===== Administración ===== 
 +==== Scripts ==== 
 +Script para listar las tablas fragmentadas y correr un optimize 
 +<code bash optimise.sh> 
 +#!/bin/sh 
 +echo -n "MySQL username: " ; read username 
 +echo -n "MySQL password: " ; stty -echo ; read password ; stty echo ; echo
  
 +mysql -u $username -p"$password" -NBe "SHOW DATABASES;" | grep -v 'lost+found' | while read database ; do
 +mysql -u $username -p"$password" -NBe "SHOW TABLE STATUS;" $database | while read name engine version rowformat rows avgrowlength datalength maxdatalength indexlength datafree autoincrement createtime updatetime checktime collation checksum createoptions comment ; do
 +  if [ "$datafree" -gt 0 ] ; then
 +   fragmentation=$(($datafree * 100 / $datalength))
 +   echo "$database.$name is $fragmentation% fragmented."
 +   mysql -u "$username" -p"$password" -NBe "OPTIMIZE TABLE $name;" "$database"
 +  fi
 +done
 +done
 +</code>
 +===== Manejo de datos =====
 +==== MySQL y datos CSV ====
 Importacion : Importacion :
 <code sql> <code sql>
Línea 24: Línea 42:
 mysql -u root -p  cdr -B -e  "select * from \`calldetails\` limit 2;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' mysql -u root -p  cdr -B -e  "select * from \`calldetails\` limit 2;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g'
 </code> </code>
- +==== Unix Time ====
-===== Unix Time =====+
 <code sql> <code sql>
 SELECT * , FROM_UNIXTIME( `dateTimeOrigination` ) AS Fecha SELECT * , FROM_UNIXTIME( `dateTimeOrigination` ) AS Fecha
Línea 31: Línea 48:
 WHERE `finalCalledPartyNumber` = '7420' WHERE `finalCalledPartyNumber` = '7420'
 </code> </code>
- 
 <code sql> <code sql>
 SELECT * , FROM_UNIXTIME( `dateTimeOrigination` ) AS fecha SELECT * , FROM_UNIXTIME( `dateTimeOrigination` ) AS fecha
Línea 39: Línea 55:
 ORDER BY fecha ORDER BY fecha
 </code> </code>
- +==== MySQL y Wordpress ====
- +
-===== MySQL y Wordpress =====+
 <code sql> <code sql>
 UPDATE wp_posts SET guid = replace(guid, 'http://dominioviejo.com','http://dominionuevo.com'); UPDATE wp_posts SET guid = replace(guid, 'http://dominioviejo.com','http://dominionuevo.com');
Línea 53: Línea 67:
 UPDATE wp_options SET option_value = replace(option_value, 'http://dominioviejo.com', 'http://dominionuevo.com'); UPDATE wp_options SET option_value = replace(option_value, 'http://dominioviejo.com', 'http://dominionuevo.com');
 </code> </code>
-===== MySQL y Wordpress ===== 
  
 +==== 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.1429713566.txt.gz · Última modificación: 2015/04/22 14:39 por cayu