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

Bloqueo de Tuplas

Estas en el tema de Bloqueo de Tuplas en el foro de Mysql en Foros del Web. Hola amigos: Al realizar un bloqueo por registros utiliando la sentencia SELECT FOR UPDATE, obtengo el siguiente resultado: *Si la sentencia se aplica sobre una ...
  #1 (permalink)  
Antiguo 08/11/2005, 10:42
 
Fecha de Ingreso: enero-2005
Mensajes: 23
Antigüedad: 19 años, 10 meses
Puntos: 0
Bloqueo de Tuplas

Hola amigos:
Al realizar un bloqueo por registros utiliando la sentencia SELECT FOR UPDATE, obtengo el siguiente resultado:
*Si la sentencia se aplica sobre una tabla que posee pocas tuplas(3 o 4 por ej), enconces toda la tabla es bloqueada.
*Por el contrario, si se aplica a una de gran cantidad de tuplas(200aprox.), el bloque se produce sobre algunos registros pero no sobre toda la tabla.

Necesito saber cual es la causa de este problema, y de ser posible la solucion, ya que la finalidad de esta sentencia es bloquear solo los registros seleccionados por una condicion.

Muchas gracias
  #2 (permalink)  
Antiguo 08/11/2005, 11:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años
Puntos: 3
Por lo que entiendo solo las tablas InnoDB permiten el bloqueo a nivel de registro.

Para crear estas tablas InnoDB sólo se tiene que especificar Type = InnoDB al final de la sentencia CREATE TABLE

InnoDB es un motor de bases de datos muy completo que ha sido integrado dentro de MySQL.


SELECTs sin bloqueo. El motor InnoDB usa una técnica conocida como multi-versioning (similar a PostgreSQL) que elimina la necesidad de hacer bloqueos en consultas SELECT muy simples. Ya no será necesario molestarse porque una simple consulta de sólo lectura está siendo bloqueada por otra consulta que está haciendo cambios en una misma 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 13:55.