¿"SELECT ... FOR UPDATE"
se unen las filas unidas en MySQL?MySQL InnoDB bloquea en las filas unidas
Si es así, ¿es posible deshabilitar este comportamiento?
No hay nada de esto en la documentación. He visto que Oracle admite "SELECT ... FOR UPDATE OF table_name"
, donde table_name es la tabla principal o una de las tablas combinadas para las cuales se bloquearán las filas afectadas, pero nunca he visto esto mencionado en contexto con MySQL.
¿La instrucción de actualización bloquea las filas en las otras tablas? Creo que debería (tal vez depende del nivel de aislamiento), ya que los valores en la actualización pueden depender de los valores en la otra tabla. ¿Necesita usar para la actualización? ¿Tal vez el bloqueo en modo compartir es lo que estás buscando? De todos modos, personalmente estoy interesado en esta respuesta, pero tal vez la única forma de saberlo es probar esto. –
Investigué un poco con la información mejorada proporcionada por el complemento InnoDB y por el número de filas que bloquean mis transacciones y el comportamiento de mi aplicación. Diría que MySQL está bloqueando todas las filas unidas además de las filas de la tabla principal . No he podido encontrar una cláusula de consulta o una opción InnoDB que cambiaría esto, por lo que parece que estamos estancados con este comportamiento predeterminado por ahora. –
Encontré la respuesta en la documentación de MySQL – RolandoMySQLDBA