Establecer "tiempo de espera de bloqueo" en MySQL

13

¿Dónde establecería el tiempo máximo que una consulta esperará un bloqueo en MySQL 5.0.68 antes de que se agote el tiempo de espera?

Gayo
fuente

Respuestas:

6

Otras configuraciones de tiempo de espera que son generales (no solo para bloqueos, ya que innodb_lock_wait_timeout solo se aplica a bloqueos de fila de InnoDB) serían wait_timeout e interactive_timeout (ambos predeterminados a 28.800)

Derek Downey
fuente
1

Si alcanza el tiempo de espera de 50 segundos de InnoDB, ¡tiene una aplicación mal diseñada!

Ese tiempo de espera existe para atrapar cosas malas que no se pueden atrapar de otra manera.

Rick James
fuente
1
O debido a errores, tengo un servidor mysql y mariadb extremadamente ocupado y los interbloqueos son algo normal que sucede todo el tiempo. Incluso si es "imposible". Si tiene cien millones de filas y diez miles de comandos sql por segundo, encontrará todo tipo de error en mysql (bloqueos), así como puntos muertos de varios tipos.
John
1
Depende de la situación. De los documentos de mysql: puede disminuir este valor para aplicaciones altamente interactivas o sistemas OLTP, para mostrar los comentarios de los usuarios rápidamente o poner la actualización en una cola para procesarla más tarde. Puede aumentar este valor para operaciones de fondo de larga ejecución, como un paso de transformación en un almacén de datos que espera a que finalicen otras operaciones de inserción o actualización grandes.
g4b0
Comprobando que la aplicación está mal construida ... ¡sí!
Noah Duncan