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

Autoincrement desde múltiples conexiones SQL

Estas en el tema de Autoincrement desde múltiples conexiones SQL en el foro de Mysql en Foros del Web. Hola a todos! Tengo una pregunta sencilla y quizás hasta un poco tonta, lo cierto es que quiero realizar más de 3 conexiones mysql al ...
  #1 (permalink)  
Antiguo 24/05/2014, 18:29
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Autoincrement desde múltiples conexiones SQL

Hola a todos!

Tengo una pregunta sencilla y quizás hasta un poco tonta, lo cierto es que quiero realizar más de 3 conexiones mysql al mismo tiempo con clientos de request por minuto y mi miedo es que aya conflicto con el autoincrement.

Por ejemplo, si dos conexiones MySQL externas mandan un insert into al "mismo tiempo" (notese las comillas) que sucederá?

¿No se trunkan las DB por ese tipo de cosas? ¿O MySQL no tiene ese tipo de problemas?

Gracias!
  #2 (permalink)  
Antiguo 24/05/2014, 20: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: 16 años, 4 meses
Puntos: 2658
Respuesta: Autoincrement desde múltiples conexiones SQL

Si son insert directos, no habrá problemas. MYSQL encola las inserciones y cada una se realizara en orden.
Eso en general. Para escenarios específicos, habría que ver cada casos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/05/2014, 20:12
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: Autoincrement desde múltiples conexiones SQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si son insert directos, no habrá problemas. MYSQL encola las inserciones y cada una se realizara en orden.
Eso en general. Para escenarios específicos, habría que ver cada casos.
Si, son los INSERT INTO de "toda la vida" usando mysql_query(), la diferencia está en que se ejecutan desde múltiples conexiones remotas.
  #4 (permalink)  
Antiguo 24/05/2014, 20:23
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, 4 meses
Puntos: 2658
Respuesta: Autoincrement desde múltiples conexiones SQL

Las conexiones son tema de programacion (off tópic), desde el lado de la base de datos hablamos de accesos o transacciones concurrentes, y todo DBMS esta diseñado para soportadas.
El problema puede darse en alta concurrencia por múltiples cosas, donde el autoincremental es el problema menor.
Hay otras cosas mucho más problemáticas en ese caso que eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 26/05/2014, 05:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 65
Antigüedad: 18 años, 4 meses
Puntos: 4
Respuesta: Autoincrement desde múltiples conexiones SQL

Si no recuerdo mal las operaciones sobre una única tabla son atómicas. El problema surge si quieres hacer varias operaciones o involucras operaciones sobre varias tablas.
  #6 (permalink)  
Antiguo 26/05/2014, 05:52
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, 4 meses
Puntos: 2658
Respuesta: Autoincrement desde múltiples conexiones SQL

Hay varias circunstancias donde se pueden generar problemas de acceso concurrente.
Por ejemplo:
- Que se realice un UPDATE en un proceso de varias etapas, donde se realizan consultas previas y de estas dependan posteriores updates. En ese caso podrías estar realizando actualizacioens sobre datos incorrectos si otro usuario lo modificó entremedio del primero y el ultimo paso. La acción sobre una única tabla, es atómico, pero un proceso de N pasos no necesariamente.

- Que tengas varias acciones que dependan del futuro AI, y no quieras o no puedas insertar ese registro antes de que las otras terminen. En ese caso al insertarse finalmente, suvalor puede ser diferente al esperado. Para ese caso se debe hacer una reserva previa del valor futuro.

La primera de las situaciones se suele controlar por transacciones. La segunda requiere cierto tipo de acciones específicas para evitar problemas.

La concurrencia de usuarios trae muchas situaciones complejas que deben resolverse caso por caso. Si bien existen estrategias para eso, cada caso puede requerir cosas diferentes. Hay que analizarlo de a uno.
__________________
¿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: conexiones, sql
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 20:40.