sql >> Base de Datos >  >> RDS >> Mysql

innodb_lock_wait_timeout aumentar el tiempo de espera

Si se trata de una aplicación web y está tratando de mantener la transacción de una página a la siguiente, no lo haga; no funcionará.

¿Qué quieres decir con "justo después"? Si no hace nada entre las dos declaraciones, incluso un tiempo de espera de 1 segundo debería ser suficiente.

mysql> SET GLOBAL innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
|                         50 |
+----------------------------+
mysql> SET SESSION innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
|                          1 |
+----------------------------+

Para explicar GLOBAL vs SESSION para VARIABLES:El valor GLOBAL se usa para inicializar el valor de SESSION cuando comienza su conexión. Después de eso, puede cambiar el valor de SESSION para afectar lo que está haciendo. Y cambiar el valor GLOBAL no tiene ningún efecto en su actual conexión.

Cambiar el tiempo de espera a 1 es bastante seguro (una vez que comprenda GLOBAL vs SESSION). Lo único que cambiará es la frecuencia de recibir ese error.