Tablas grandes

Seguimos con el tema del backup y restore en motores de base de datos mysql. Hacemos backup de una base de datos MySQL en un, por supuesto, entorno GPL Linux :). El archivo sql ocupa lo que no está escrito. Hacer un restore de eso es simplemente cuestión de tiempo y procesador, pero imagina que, tu jefe te pide que debes exportar de esa base de datos una serie de tablas, coger las filas de esa tabla y añadirlas a otra tabla con la misma estructura. Un infierno. Lo voy a explicar mejor:

– Tenemos 2 tablas: usuarios y usuarios2.
– Queremos unificar los registros de todas las tablas en una única tabla, usuarios.
– Eso supone, hacer un export de usuarios2 y con un archivo sql, importarlo en la bd y la tabla usuarios.

Hay muchas formas de hacerlo. La primera que se me ocurrió, fue bajarme el archivo sql generado por dump, trocearlo en partes y editar los inserts para después ejecutar el restore. Bueno, no es viable. Es posible si tenemos diez filas, pero si tenemos 1.500.000 filas mejor dejarlo. Así que, repetimos, tenemos que unificar el contenido de 2 tablas en una sola, suponemos que no tenemos problemas de primary keys repetidas o cosas por el estilo.

Con ayuda de Eloi Poch, utilizamos la forma de consulta INSERT INTO …. SELECT. Podéis leer más sobre el INSERT INTO aquí. Ejemplo:

INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_templ.fld_order_id
FROM tbl_templ WHERE tbl_templ.fld_order_id > 100;

Con esta sentencia hacemos los INSERTS INTO en una determinada tabla pero tomando los valores que devuelve la segunda parte de la sentencia, el SELECT FROM. No lo había utilizado hasta ahora. Una pequeña nota más en todo caso :O

¿Te ha ayudado este artículo?

Invítame a un café

Un comentario de “Tablas grandes

  1. jors dice:

    Jo tampoc ho he utilitzat mai, però no ho veig extrany sent coneixedor dels SUBSELECTS (SELECTS anidats, que cal dir que en general cal evitar-los pel performance hit que ocasionen, sent preferibles altres solucions com els JOINS).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rubenortiz.es
Información sobre privacidad

Este sitio web utiliza cookies para ofrecerte la mejor experiencia de usuario posible. La información sobre cookies se almacena en tu navegador y realiza funciones como reconocerte cuando vuelve a nuestro sitio web y ayudarme a comprender qué secciones de la web resultan más interesantes y útiles.