gpt4 book ai didi

php - innodb_lock_wait_timeout 增加超时

转载 作者:可可西里 更新时间:2023-11-01 06:33:01 30 4
gpt4 key购买 nike

我正在使用 MySQL 数据库并尝试在插入后立即更新记录,因此出现以下错误 ER_LOCK_WAIT_TIMEOUT:超出锁定等待超时;尝试重新启动事务。所以我通过以下查询减少超时:-

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)。唯一会改变的是出现该错误的频率。

关于php - innodb_lock_wait_timeout 增加超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735473/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com