Foros del Web » Programando para Internet » PHP »

Misterios de PHP y MySQL

Estas en el tema de Misterios de PHP y MySQL en el foro de PHP en Foros del Web. Tengo un código que hace lo siguiente: -mysql DELETE - while() { INSERT } -mysql DELETE - while() { INSERT } Naturalmente, lo tengo bien ...
  #1 (permalink)  
Antiguo 10/12/2002, 06:35
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Misterios de PHP y MySQL

Tengo un código que hace lo siguiente:

-mysql DELETE
- while() { INSERT }
-mysql DELETE
- while() { INSERT }


Naturalmente, lo tengo bien escrito y funcionando, era sólo un esquema para que me comprendáis.

El caso es que la idea era hacer un proceso de 4 pasos:
1) Borro datos de la tabla 1
2) Uso un bucle para rellenar de nuevo la tabla 1
3) Borro datos de la tabla 2
4) Uso un bucle para rellenar de nuevo la tabla 2

Sin embargo, al ver el estado de la tabla mientras se ejecuta el script (tengo tiempo, pues son tablas de 15.000 y 120.000 registros) he comprobado que pasa esto:
1) Borro datos de la tabla 1
2) Uso un bucle para rellenar de nuevo la tabla 1

Y mientras aún estoy en el bucle de la tabla 1, tiene lugar:
3) Borro datos de la tabla 2
4) Uso un bucle para rellenar de nuevo la tabla 2

Asombroso

En realidad, a mi me va mejor, porque así parece que más deprisa, pero no deja de ser un 'bug'
__________________
M a l d i t o F r i k i
  #2 (permalink)  
Antiguo 10/12/2002, 07:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bug?

Yo no se mucho de Mysql a nivel técnico .. pero creo q Mysql puede ejecutar varios "threads" (se llama así? - procesos) en un mismo instante .. y al parecer eso es lo q está haciendo ...?¿

Has reportado este "bug" q deces tu a Mysql? ..

Un saludo,
  #3 (permalink)  
Antiguo 10/12/2002, 08:51
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
No, no lo he reportado, aunque parece más cosa de PHP que de MySQL, y puede que más que un bug, sea que no sé diferenciar los procesos de modo que los ejecute secuencialmente.

De todos modos, para este script concreto no me es necesario que me respete el orden.
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 10/12/2002, 13:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Yo creo que no es un 'bug'. Creo que MySQL esta configurado para realizar los insert en los tiempos libres. Supongo que sera solo si no se intenta acceder a la tabla que se esta modificando. Creo que lo denominan 'delayed'.

De lo que estoy casi seguro que no es culpa de PHP. Porque se supone que PHP ejecuta todos los mysql_query() del while. Otra cosa es lo que haga MySQL con las consultas que recibe.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 04:42.