簡體   English   中英

innodb_lock_wait_timeout增加超時

[英]innodb_lock_wait_timeout increase timeout

我正在使用MySQL數據庫並嘗試在插入后更新記錄,因此我收到以下錯誤ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction 所以我通過以下查詢減少超時: -

set GLOBAL innodb_lock_wait_timeout=1

所以我的問題是: - 這樣做可以嗎? 它會導致性能問題等其他問題嗎?

謝謝您的幫助。

如果這是一個Web應用程序,並且您嘗試從一個頁面掛到另一個頁面, 請不要 ; 它不會起作用。

你剛才說的是什么意思? 如果你在兩個語句之間沒有做任何事情,即使超時1秒也應該足夠大。

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

為VARIABLES解釋GLOBAL vs SESSION:GLOBAL值用於在連接開始時初始化 SESSION值。 之后,您可以更改SESSION值以影響您正在執行的操作。 更改GLOBAL值對您當前的連接沒有影響。

將超時更改為1非常安全(一旦您了解GLOBAL vs SESSION)。 唯一會改變的是獲得該錯誤的頻率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM