Mysql
 sql >> Datenbank >  >> RDS >> Mysql

innodb_lock_wait_timeout Zeitüberschreitung erhöhen

Wenn es sich um eine Webanwendung handelt und Sie versuchen, die Transaktion von einer Seite zur nächsten festzuhalten, nicht; es wird nicht funktionieren.

Was meinst du mit "kurz danach"? Wenn Sie zwischen den beiden Anweisungen nichts tun, sollte sogar ein Timeout von 1 Sekunde groß genug sein.

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

Um GLOBAL vs. SESSION für VARIABLEN zu erklären:Der GLOBAL-Wert wird zum Initialisieren verwendet den SESSION-Wert, wenn Ihre Verbindung beginnt. Danach können Sie den SESSION-Wert ändern, um zu beeinflussen, was Sie tun. Und das Ändern des GLOBAL-Werts hat keine Auswirkung auf Ihre aktuelle Verbindung.

Das Ändern des Timeouts auf 1 ist ziemlich sicher (sobald Sie GLOBAL vs SESSION verstanden haben). Das Einzige, was sich ändern wird, ist die Häufigkeit, mit der dieser Fehler auftritt.