innodb_lock_wait_timeout 增加超时
innodb_lock_wait_timeout increase timeout
我正在使用 MySQL 数据库并试图在插入后立即更新记录,所以我收到以下错误 ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction
。
所以我通过以下查询减少超时:-
set GLOBAL innodb_lock_wait_timeout=1
所以我的问题是:-
可以这样做吗?会不会导致性能问题等其他问题?
感谢您的帮助。
如果这是一个 Web 应用程序,并且您正试图从一页到下一页挂起事务,不要;它不会工作。
"just after" 是什么意思?如果您在两个语句之间什么都不做,即使是 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 |
+----------------------------+
解释变量的 GLOBAL 与 SESSION:GLOBAL 值用于在连接开始时初始化 SESSION 值。之后,您可以更改 SESSION 值以影响您正在做的事情。更改 GLOBAL 值对您的 current 连接没有影响。
将超时更改为 1 是非常安全的(一旦您了解了 GLOBAL 与 SESSION)。唯一会改变的是出现该错误的频率。
我正在使用 MySQL 数据库并试图在插入后立即更新记录,所以我收到以下错误 ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction
。
所以我通过以下查询减少超时:-
set GLOBAL innodb_lock_wait_timeout=1
所以我的问题是:- 可以这样做吗?会不会导致性能问题等其他问题?
感谢您的帮助。
如果这是一个 Web 应用程序,并且您正试图从一页到下一页挂起事务,不要;它不会工作。
"just after" 是什么意思?如果您在两个语句之间什么都不做,即使是 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 |
+----------------------------+
解释变量的 GLOBAL 与 SESSION:GLOBAL 值用于在连接开始时初始化 SESSION 值。之后,您可以更改 SESSION 值以影响您正在做的事情。更改 GLOBAL 值对您的 current 连接没有影响。
将超时更改为 1 是非常安全的(一旦您了解了 GLOBAL 与 SESSION)。唯一会改变的是出现该错误的频率。