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

Bloqueo de tabla Innodb

Estas en el tema de Bloqueo de tabla Innodb en el foro de Mysql en Foros del Web. Buenos días, Tengo una base de datos con tablas Innodb. Tengo entendido que estas tablas se bloquean. Tengo una tabla que recibe inserts un insert ...
  #1 (permalink)  
Antiguo 19/06/2009, 03:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Bloqueo de tabla Innodb

Buenos días,
Tengo una base de datos con tablas Innodb. Tengo entendido que estas tablas se bloquean. Tengo una tabla que recibe inserts un insert cada 5 segundos o menos. Por otro lado, en una web, se consulta información en dicha tabla. Tengo un aplicativo que se ejecuta, digamos, cada 5 minutos, que hace unas actualizaciones en la misma tabla.
El aplicativo que tengo de rellenar la tabla (a base de inserts) veo que van saltando errores de "insert....". He comprobado el "insert..." ejecutándolo directament en MySql y es correcto.
Puede ser que me bloquee la tabla, por el tipo Innodb, y en ese momento no haga el insert ?
  #2 (permalink)  
Antiguo 19/06/2009, 04:25
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: Bloqueo de tabla Innodb

Si puede, si las dos operaciones son concurrentes.
Lo que debe hacerse es administrar la situación por transacciones, definiendo su tipo de bloqueo (escritura y no lectura) y el ISOLATION LEVEL para que permita que l atabla se pueda leer, a pesar de estar siendo escrita.
El resultado sería que la lectura estará "sucia", ya que los datos no son definitivos, pero al menos se podrá ver el estado anterior al último INSERT.
Lee un poco de esto: 13.4.6. Sintaxis de SET TRANSACTION
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 22:30.