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

¿Por que me da el siguiente erro?

Estas en el tema de ¿Por que me da el siguiente erro? en el foro de Mysql en Foros del Web. estoy intentan ejecutar la siguiente sentencia con php: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $sql = "insert into resultados (id_cuenta,Fans,PRRD) select a.acc_num, count(screen_name_id), sum(d.count_account) from ...
  #1 (permalink)  
Antiguo 24/04/2012, 10:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 87
Antigüedad: 13 años, 10 meses
Puntos: 2
¿Por que me da el siguiente erro?

estoy intentan ejecutar la siguiente sentencia con php:
Código PHP:
Ver original
  1. $sql="insert into resultados (id_cuenta,Fans,PRRD) select a.acc_num, count(screen_name_id), sum(d.count_account) from acc_profile a left join (select * from analitico_replies1 union select * from analitico_replies2 union select * from analitico_replies3 union select * from analitico_replies4) d on d.id_cuenta=a.acc_num group by a.acc_user";
y a la hora de ejecutar la consulta me arroja el siguiente error: Server shutdown in progress, para mayor informacion mis tablas analitico_replies1, analitico_replies2, analitico_replies3, analitico_replies4 tienen aproximadamente 580000 registros las 4 juntas, ¿Puede ser ese el problema? por que en el mismo archivo tengo mas sentecias y solo esa me causa problemas
  #2 (permalink)  
Antiguo 24/04/2012, 12:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: ¿Por que me da el siguiente erro?

Los 580.000 registros de las cuatro tablas no son tanto problema. Lo que puede generar problemas es que le haces un LEFT JOIN contra la tabla de perfiles, lo que implica que devolverá los 580.000 relacionados con cada perfil, tenga o no coincidencias.
Código MySQL:
Ver original
  1. insert into resultados
  2.     (id_cuenta,Fans,PRRD)
  3.     a.acc_num,
  4.     count(screen_name_id),
  5.     sum(d.count_account)
  6.     acc_profile a
  7.     left join
  8.     (select *
  9.     from analitico_replies1
  10.     union
  11.     select *
  12.     from analitico_replies2
  13.     union
  14.     select *
  15.     from analitico_replies3
  16.     union
  17.     select *
  18.     from analitico_replies4) d on d.id_cuenta=a.acc_num
  19. group by a.acc_user

Si la relación id_cuenta -> acc_num es mandatoria, correspondería usar INNER JOIN. Si no lo es, sería mejor definir algún indice que optimice el proceso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join, php, registros, select, siguiente, sql, tabla
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 01:09.