sql >> Databasteknik >  >> RDS >> Mysql

innodb_lock_wait_timeout öka timeout

Om det här är en webbapplikation och du försöker hålla fast vid transaktionen från en sida till nästa, gör inte; det kommer inte att fungera.

Vad menar du med "strax efter"? Om du inte gör något mellan de två påståendena bör även en timeout på 1 sekund vara tillräckligt stor.

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 |
+----------------------------+

För att förklara GLOBAL vs SESSION för VARIABLER:GLOBAL-värdet används för att initiera SESSION-värdet när din anslutning startar. Efter det kan du ändra SESSION-värdet för att påverka vad du gör. Och att ändra GLOBAL-värdet har ingen effekt på din aktuella anslutning.

Att ändra timeout till 1 är ganska säkert (när du väl förstår GLOBAL vs SESSION). Det enda som kommer att förändras är frekvensen av att få det felet.




  1. MySQL-partitionering / sönderdelning / delning - vilken väg ska jag gå?

  2. NYHETER:Ny Microsoft SQL Server Native Client 18 släppt!

  3. query cache fungerar inte

  4. MySQL-strängbyte