在我的项目中,我正在使用隔离级别为READ-COMMITTED的innodb存储引擎。 我的 innodb_lock_wait_timeout 为300秒(5分钟)。对于选择和更新查询,如果他们等待其他事务持有的锁,则5分钟后,我会得到
“锁定等待超时。尝试重新启动事务。”
但是对于插入查询(有时是删除查询),即使经过5分钟,我也没有得到锁等待超时。 大约5分钟后,如果我杀死了那些插入查询,我会根据连接终止获得异常,这是预期的,但在
中“显示进程列表”
该查询被标记为已终止,但该查询似乎保留了一两个小时以上。 是否有引起此或其他原因的任何配置参数。用Google搜索这类问题,但找不到正确的答案。
仅供参考: 我只是插入1行(不是批量插入),等待获得锁。
答案 0 :(得分:0)
进一步挖掘和调试时,发现这是mysql版本5.7.18的问题。当用5.7.24更新时,等待锁定的查询实际上可能引发“超出了锁定等待超时。尝试重新启动事务”。