`

Lock wait timeout exceeded

 
阅读更多

错误信息:

 

org.springframework.dao.CannotAcquireLockException: ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lockwaittimeoutexceeded; try restarting transaction

 

原因:表的某条记录更增操作可能在另外一个大的事务里被锁,锁的时间超过了数据库指定时间(如下图:innodb_lock_wait_timeout=10秒),导致此处获取不到这条数据的锁而报错。

 

 

优化方法:

1.大批量更增执行改成小批量。

2.大事务拆分。

3.数据归档。

分享到:
评论

相关推荐

    解决SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded_runtimeerror怎么修复

    在MySQL数据库操作中,"SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded" 是一个常见的错误,它意味着在执行事务时,系统等待锁定资源的时间超过了预设的限制。这个错误通常发生在并发环境中,当...

    KFC系列之 - Oracle DBA入门Mysql(中)

    - **innodb_lock_wait_timeout**:设置在等待锁时的超时时间,单位为秒。如果超过了这个时间还没有获取到锁,那么会抛出错误并提示用户重启事务。 ##### 3. 锁相关字典表查询和命令 MySQL提供了几个系统视图来查看...

    某公司测试报告1

    此外,两种环境都存在等待问题,导致Lock wait timeout exceeded错误。 **3. 自定义SQL测试** 针对特定用户场景,进行了复杂查询SQL的自定义测试。在200个线程的高并发下,Mycat的CPU占用率为400%,而9个MySQL...

    MySQL关于ERROR 1290 (HY000)报错解决方法

    一个问题纠结很久,反复确认语法问题。但是后来网上搜了一下,茅塞顿开。特此总结一下。 mysql> grant select,insert,update,delete on *.* to 'root'@'%'; ERROR 1290 (HY000): The MySQL server is running with ...

    mysql主备双向复制[定义].pdf

    在实际操作中,为了防止因事务隔离级别导致的问题,如"Lock wait timeout exceeded"错误,可能需要将MySQL的事务级别设置为`READ COMMITTED`。 一旦主服务器配置完成,就可以在备用服务器上重复类似步骤,但要使用...

    Java常见异常集-Java,Hibernate,Tomcat异常

    12. **Lock wait timeout exceeded try restarting transaction**:在MySQL中,如果事务等待锁的时间超过设定的超时时间,会出现此错误。分析事务逻辑,优化事务粒度,或者提高锁等待超时时间(innodb_lock_wait_...

    mysql-常见问题,索引优化

    5. Lock wait timeout exceeded 当事务中的操作无法立即获得锁定时,会等待一段时间,超时后抛出错误。这可能是死锁的信号,应检查事务的执行顺序,避免循环等待。 6. InnoDB与MyISAM的区别 InnoDB支持事务和行级...

    SQL2008中SQL应用之- 死锁(Deadlocking)

    死锁(Deadlocking)是数据库管理系统中常见的一个问题,特别是在并发操作环境下。在SQL Server 2008中,死锁是指两个或多个并发事务互相等待对方释放资源,从而导致它们都无法继续执行的情况。当出现死锁时,SQL ...

    oracle错误代码大全

    #### ORA-00051: Lock wait timeout exceeded - **解释**: 锁等待超时。 - **解决方案**: 优化锁管理或增加等待时间。 #### ORA-00052: Lock timeout exceeded - **解释**: 锁超时。 - **解决方案**: 优化锁管理...

    Mysql 教程之运维系列

    - 分析常见错误代码及含义,例如:Table lock wait timeout exceeded;Too many connections等。 **2. 查询日志** - **定义与作用**:查询日志记录了客户端执行的所有SQL语句。主要用于审计、故障排查以及性能...

    记一次MySQL数据库问题排查

    `Error: ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction`表明某个事务在等待其他事务释放锁资源时超过了预设的超时时间。事务是数据库操作的重要组成部分,它确保了数据的一致性和...

    Mysql悲观锁和乐观锁的使用示例

    如果Session 1长时间未提交,Session 2会收到`Lock wait timeout exceeded`错误。可以通过`innodb_lock_wait_timeout`配置参数调整超时时间。 **乐观锁(Optimistic Lock)** 乐观锁则相反,它在读取数据时不加锁...

    查找MySQL线程中死锁的ID的方法

    当发生死锁时,数据库会检测到这种情况并抛出错误,如错误1205(HY000):“Lock wait timeout exceeded; try restarting transaction”。为了解决这个问题,我们需要找出导致死锁的具体线程并结束它。本文将详细...

    微软内部资料-SQL性能优化2

    As such, non-paged pool can be accessed at any time without incurring a page fault. Because device drivers operate at DPC/dispatch level (covered in lesson 2), and page faults are not allowed at this...

Global site tag (gtag.js) - Google Analytics