插入和删除查询是不是可以从锁定等待超时中逃脱?
Posted
技术标签:
【中文标题】插入和删除查询是不是可以从锁定等待超时中逃脱?【英文标题】:Is it possible for Insert and delete queries to escape from Lock wait timeout?插入和删除查询是否可以从锁定等待超时中逃脱? 【发布时间】:2019-07-18 15:40:13 【问题描述】:在我的项目中,我使用的是隔离级别 READ-COMMITTED 的 innodb 存储引擎。 我将我的 innodb_lock_wait_timeout 设为 300 秒(5 分钟)。对于选择和更新查询,如果他们等待其他事务持有的锁,5 分钟后,我得到 p>
“锁定等待超时..尝试重新启动事务。”
但是对于插入查询(有时删除查询),即使在 5 分钟后我也没有得到锁定等待超时。 就在 5 分钟后,如果我终止那些插入查询,我会得到基于连接终止的异常,这是预期的,但在
“显示进程列表”
查询被标记为已终止,但查询似乎会保留一两个多小时。 是否有任何配置参数导致此或其他原因。谷歌搜索了此类问题,但找不到正确答案。
仅供参考: 我只是插入 1 行(不是批量插入),它正在等待获取锁。
【问题讨论】:
【参考方案1】:当进一步挖掘和调试时,发现是mysql 5.7.18版本的问题。当使用 5.7.24 更新时,等待锁定的查询实际上会抛出“超过锁定等待超时。尝试重新启动事务”。
【讨论】:
以上是关于插入和删除查询是不是可以从锁定等待超时中逃脱?的主要内容,如果未能解决你的问题,请参考以下文章