Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como unir dos tablas de gran tamaño

Estas en el tema de Como unir dos tablas de gran tamaño en el foro de Mysql en Foros del Web. Buenos días, a ver si podéis echarme una mano para fusionar dos tablas de gran tamaño. Tabla A: campo ID (clave única) + otros campos ...
  #1 (permalink)  
Antiguo 05/10/2011, 01:47
 
Fecha de Ingreso: septiembre-2009
Mensajes: 47
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Como unir dos tablas de gran tamaño

Buenos días, a ver si podéis echarme una mano para fusionar dos tablas de gran tamaño.

Tabla A: campo ID (clave única) + otros campos
Tabla B: campo ID (clave única y además coincide con el que se debe unir de la tabla A + 3 nuevos campos

Ambas tablas tienen más de 2.000.000 de registros por lo que update que relacione las tablas y las actualize me da que va a tardar muchisimo, lo he hecho con tablas de menos de 100 registros y ha ido rápido.

Saludos!
  #2 (permalink)  
Antiguo 05/10/2011, 05:52
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Como unir dos tablas de gran tamaño

No entiendo bien que llamas unir, esta algo mal explicado el post.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 05/10/2011, 06:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 47
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Como unir dos tablas de gran tamaño

Me refiero a que uniendo la Tabla A y la Tabla B generen una Tabla C con las columnas de la A y la B. No quiero hacer un select ni una vista, si no unirlas físicamente.

Alguien me echa una mano? Gracias!
  #4 (permalink)  
Antiguo 05/10/2011, 06:26
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Como unir dos tablas de gran tamaño

Con semejante cantidad de registros siempre va a ser una tarea costosa a nivel tiempo.

Lo mas optimo que se me ocurre es que hagas un insert select

Insert into tabla_c select a.campo1, a.campo2, b.campo1, b.campo2 from a, b where relacion
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 05/10/2011, 06:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como unir dos tablas de gran tamaño

Unirlas físicamente implica, como te dice h2swinder, al menos un insert masivo contra una tabla "C", como dices, y la tabla resultado tiene que poseer la estructura de campos necesaria.
El problema es que tienes que hacer un INNER JOIN, y además asegurarte de que no existan datos repetidos entre ambas tablas en columnas que tenagan diferente nombre, e incluso que no existan clumnas con igual nombre.

Una forma directa es:

Código MySQL:
Ver original
  1. CREATE TABLE TablaC AS
  2. FROM tablaA A INNER tablaB  ON a.id = B.id_a
  3. [WHERE condiciones]
El problema básico es que no nos estás dando una idea clara de la cardialidad que posee esa relación entre ambas, ya que si la relación es 1:N o N:N, el resultado tendrá más que 2.000.000 de registros.

Atención: Ten en cuenta que si no existe una relación entre ambas, el resultado será un producto cartesiano...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 05/10/2011, 13:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 47
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Como unir dos tablas de gran tamaño

Gracias por vuestra rápida ayuda! Al final lo he conseguido hacer con lo que ha dicho gnzsoloyo.

Por cierto, la relación entre la dos tablas era 1:1

Saludos

Etiquetas: campos, registros, tabla, tablas, tamaño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:40.