Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

innodb_lock_wait_timeout aumenta o tempo limite


Se este for um aplicativo da web e você estiver tentando manter a transação de uma página para outra, não; não vai funcionar.

O que você quer dizer com "logo depois"? Se você não estiver fazendo nada entre as duas instruções, mesmo um tempo limite de 1 segundo deve ser grande o 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:O valor GLOBAL é usado para inicializar o valor SESSION quando sua conexão é iniciada. Depois disso, você pode alterar o valor de SESSION para afetar o que está fazendo. E alterar o valor GLOBAL não tem efeito no seu valor atual conexão.

Alterar o tempo limite para 1 é bastante seguro (depois de entender GLOBAL vs SESSION). A única coisa que vai mudar é a frequência de obter esse erro.