首页 > 编程知识 正文

mysql 锁表原因,mysql锁表了怎么办

时间:2023-05-04 13:36:34 阅读:189322 作者:1948

一、锁定表原因1、锁定表在insert update、delete中发生;

2、锁定表的原理是当数据库使用独占阻塞机制执行上述语句时,在发生commite或回滚或退出数据库用户之前锁定表。

3、锁表理由:

第一、a程序执行对表的插入,还没有完成命令的情况下,如果b程序也进行对表的插入,在那个时间点会发生资源繁忙的异常,这就是锁表;

其次,锁定表往往是同时而不是并行发生的。 对于并行情况,当一个线程操作数据库时,另一个线程无法操作数据库。 cpu和i/o分配原则)

4、减少锁表的概率:

缩短从执行insert、update和delete语句到commite的时间。 将具体的批量点执行改为单一执行,优化sql本身的非执行速度

异常回滚事物的情况。

二.查看mysql锁表解析#进程id,用kill id杀死进程

show processlist;

select * from information _ schema.process list;

#询问正在运行的进程

select * from information _ schema.processlistwherelength (info ) 0;

#询问是否锁定桌子

show OPEN TABLES where In_use 0;

#查看锁定的内容

select * from information _ schema.innodb _ locks;

#等待锁定

select * from information _ schema.innodb _ lock _ waits;

杀死锁表的过程

kill 5601

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。