Foros del Web » Programando para Internet » PHP »

Insercion simultanea a base de datos

Estas en el tema de Insercion simultanea a base de datos en el foro de PHP en Foros del Web. Hola, Tengo una aplicacion desarrollada en php, en ella ingresan una seria de datos y se almacenan en las tablas con un id unico manejado ...
  #1 (permalink)  
Antiguo 27/07/2013, 04:50
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 10 años, 10 meses
Puntos: 1
Exclamación Insercion simultanea a base de datos

Hola,

Tengo una aplicacion desarrollada en php, en ella ingresan una seria de datos y se almacenan en las tablas con un id unico manejado por el autoincrement del mysql, esta funcionando bien, pero recien me encontre con que dos personas hicieron una insercion al mismo tiempo y al guardar se hizo una especie de mezcla de los datos.

En este momento no hay mucho problema, esto se dio por pura casualidad pero si se aproxima una temporada en que esta incidencia podria aumentar drasticamente generandome problemas con esto.

Como podria prevenir este problema???

Gracias
  #2 (permalink)  
Antiguo 27/07/2013, 05:29
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Insercion simultanea a base de datos

Depende de lo que llamas "mezcla".Pueden pasar muchas cosas.Estás usando conexiones compartidas?Se produjo la mezcla en la tabla donde está el autoincrement, o en otro sitio? Cómo se insertan los datos en ese sitio?
  #3 (permalink)  
Antiguo 27/07/2013, 05:33
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 84
Respuesta: Insercion simultanea a base de datos

Cita:
Iniciado por andreslgo Ver Mensaje
Hola,

Tengo una aplicacion desarrollada en php, en ella ingresan una seria de datos y se almacenan en las tablas con un id unico manejado por el autoincrement del mysql, esta funcionando bien, pero recien me encontre con que dos personas hicieron una insercion al mismo tiempo y al guardar se hizo una especie de mezcla de los datos.

En este momento no hay mucho problema, esto se dio por pura casualidad pero si se aproxima una temporada en que esta incidencia podria aumentar drasticamente generandome problemas con esto.

Como podria prevenir este problema???

Gracias
esto debería ir al foro de bases de datos.

busca información sobre transacciones, creo que es lo que necesitas.

si usas mysql aquí el enlace sobre dicha información

http://dev.mysql.com/doc/refman/5.0/...-commands.html
  #4 (permalink)  
Antiguo 27/07/2013, 10:28
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Insercion simultanea a base de datos

Si bien como te dicen deberiamos entender la causa del problema, podria prevenirse NO usando ID AUTOINCREMENTAL de la siguiente forma:

- Si son 2 servidores los que acceden a los datos... en uno insertas iD pares y en otro ID impares

- Si son varios servidores cada uno podria ser que cada uno use un multiplo distinto de numeros primos (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97....etc)


Si haces eso JAMAS podras obtener el mismo ID en dos servidores distintos ...... logicamente por no ser autoincremental te toca saber cual fue el ultimo ID y sumarle 2 ó 3 ó 5 ó 7... etc dependiendo de en que maquina estas.

Cita:
Iniciado por andreslgo Ver Mensaje
Hola,

Tengo una aplicacion desarrollada en php, en ella ingresan una seria de datos y se almacenan en las tablas con un id unico manejado por el autoincrement del mysql, esta funcionando bien, pero recien me encontre con que dos personas hicieron una insercion al mismo tiempo y al guardar se hizo una especie de mezcla de los datos.

En este momento no hay mucho problema, esto se dio por pura casualidad pero si se aproxima una temporada en que esta incidencia podria aumentar drasticamente generandome problemas con esto.

Como podria prevenir este problema???

Gracias
__________________
Salu2!

Etiquetas: mysql, 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 06:12.