innodb_lock_wait_timeout增加超时



我正在使用MySQL数据库,并试图在插入后更新记录,因此我收到以下错误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 |
+----------------------------+

解释变量的GLOBAL与SESSION:GLOBAL值用于在连接启动时初始化SESSION值。之后,您可以更改SESSION值以影响您正在执行的操作。更改GLOBAL值对当前连接没有影响。

将超时更改为1是非常安全的(一旦您了解了GLOBAL与SESSION)。唯一会改变的是出现错误的频率。

相关内容

  • 没有找到相关文章

最新更新