use*_*192 8 php mysql database innodb timeout
我正在使用MySQL数据库并尝试在插入后更新记录,因此我收到以下错误ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction.所以我通过以下查询减少超时: -
set GLOBAL innodb_lock_wait_timeout=1
Run Code Online (Sandbox Code Playgroud)
所以我的问题是: - 这样做可以吗?它会导致性能问题等其他问题吗?
谢谢您的帮助.
如果这是一个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 |
+----------------------------+
Run Code Online (Sandbox Code Playgroud)
为VARIABLES解释GLOBAL vs SESSION:GLOBAL值用于在连接开始时初始化 SESSION值.之后,您可以更改SESSION值以影响您正在执行的操作.更改GLOBAL值对您当前的连接没有影响.
将超时更改为1非常安全(一旦您了解GLOBAL vs SESSION).唯一会改变的是获得该错误的频率.
| 归档时间: |
|
| 查看次数: |
20282 次 |
| 最近记录: |