MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded详解数据库

1、事务未提交

在使用spring test 做单元测试时,debug导致事务没有提交,Lock wait timeout exceeded;

定位到该表,直接navicat 上insert 该表,Lock wait timeout exceeded;

确认是该表的事务没有提交,锁被占用没释放:

select * from information_schema.innodb_trx;

查看到堵塞的线程,kill  trx_mysql_thread_id,

2、表级锁被阻塞

同事在查询数据库数据写入到excel时,数据量较大有200万,未能正确分页,导致数据库锁等待卡死;

show processList;

查看到多个线程处于sending data的状态,

kill掉 线程,恢复数据库;

并将存储引擎由MyIsam 改为 INnnoDB,可减少表级锁。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/4651.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论